Cách trả về dữ liệu JSON bằng Drupal 7


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);

  }

});

mô-đun yêu cầu ajax

$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);
}

Đây có phải là cách chính xác để trả về dữ liệu json. Nếu không, nó nên được thực hiện như thế nào? Tôi muốn trả lại dữ liệu cho car.module.

Cảm ơn bạn

Câu trả lời:


12

Để trả về dữ liệu $ ở định dạng json bằng đầu ra gọi lại trang của Drupal-7, bạn nên quay lại:

drupal_json_output($data);

trong chức năng gọi lại trang của bạn. Để biết thêm thông tin tham khảo: http://api.drupal.org/api/drupal/includes!common.inc/feft/drupal_jsonDefput/7

Lưu ý: trong javascript của bạn trong car.module, var pageUrl dường như không được xác định. Hãy chắc chắn rằng nó được xác định.


1

Bạn thực sự không bao giờ nên vượt qua đầu vào không được xác nhận ở bất cứ đâu, xem "Bảng Bobby" .

Drupal có cơ sở để thoát các tham số cơ sở dữ liệu như thế này;

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

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

Lưu ý rằng bạn cũng sẽ cần phải ->fetchAll()trả lại một đối tượng cơ sở dữ liệu.


0

Gần đây tôi đã tìm thấy mô-đun plug & play này khi đã bật API để liệt kê các nút và khen thưởng, để đăng nhập / đăng xuất người dùng và tạo các thực thể với các lệnh gọi REST đọc và xuất dữ liệu JSON:

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

Nó không yêu cầu bất kỳ mã hoặc cấu hình hơn nữa.


CẢNH BÁO : Mô-đun được đề xuất trong bài đăng trên được quảng cáo là không an toàn và chính thức không được hỗ trợ kể từ Thứ Tư 2017-01-25T13: 38: 03
dreftymac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.