it-swarm.com.de

Zurückgeben von JSON-Daten mit Drupal 7

card.module

drupal_add_js('jQuery(document).ready(function () {

  currentRequest = $.ajax({
  timeout:0,
  cache: false,
  url: pageUrl,
  dataType: "json",
  type: "GET",
  success: function(data){
  $("#edit-field-currency-type-und-0-value").val(data.currency);

  }

});

Ajax-Anforderungsmodul

$items['mccurr/%'] = array(
'title' => '', 
'page callback' => 'ajax_currency_type', 
'access arguments' => array('access content'), 
'page arguments' => array(1),
'type' => MENU_SUGGESTED_ITEM,
);

function ajax_currency_type($ccode){
 drupal_add_http_header('Content-Type', 'application/javascript; utf-8');
$query = "SELECT countries_country.currency 
        FROM countries_country
        WHERE countries_country.iso2 = '".$ccode."'";
$data = db_query($query);

return drupal_json_encod($data);
}

Ist dies der richtige Weg, um JSON-Daten zurückzugeben? Wenn nicht, wie soll dies erreicht werden? Ich möchte die Daten an car.module zurückgeben.

Vielen Dank

7
TED

Um $ data im json-Format mithilfe der Seitenrückrufausgabe von Drupal-7 zurückzugeben, sollten Sie Folgendes zurückgeben:

drupal_json_output($data);

in Ihrer Seitenrückruffunktion. Weitere Informationen finden Sie unter: http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_json_output/7

Hinweis: In Ihrem Javascript in car.module scheint var pageUrl undefiniert zu sein. Stellen Sie sicher, dass es definiert ist.

12
Jeet

Sie sollten wirklich niemals eine nicht bereinigte Eingabe weitergeben, siehe "Bobby Tables" .

Drupal hat die Funktion , um Datenbankparametern wie diesen zu entkommen;

$query = "SELECT countries_country.currency 
    FROM countries_country
    WHERE countries_country.iso2 = :ccode";

$data = db_query($query, array(':ccode' => $ccode));

Beachten Sie, dass Sie auch ->fetchAll() benötigen, sonst geben Sie nur ein Datenbankobjekt zurück.

1
Pobtastic

Ich habe kürzlich dieses Plug & Play-Modul gefunden, das APIs nach Aktivierung aktiviert, um Knoten und Empfehlungen aufzulisten, Benutzer anzumelden/abzumelden und Entitäten mit REST - Aufrufen zu erstellen, die JSON-Daten lesen und ausgeben:

https://www.drupal.org/project/rest_json

Es ist kein weiterer Code oder Konfiguration erforderlich.

0
user51099