Gửi một giá trị cho JavaScript


7

Tôi đã thiết lập trình xử lý chủ đề cho một biểu mẫu trong Drupal và trình xử lý này có tệp mẫu. Cách dễ nhất để gửi một giá trị từ PHP đến JavaScript trong tệp bao gồm là gì?

Câu trả lời:


13

Cách tiêu chuẩn để thực hiện việc này trong Drupal là với drupal_add_js , sử dụng loại "cài đặt":

drupal_add_js(array('variableName' => 'value'), 'setting');

Điều đó sẽ làm cho biến có sẵn ở phía JS tại Drupal.sinstall.variableName.


1

Một số ví dụ khác về drupal_add_js ,

Tốt hơn là chỉ định tên mô-đun của bạn trong khi thêm biến JS để tránh mọi vấn đề,

drupal_add_js(array('myModule' => array('key' => 'value')), 'setting');

Trong trường hợp bạn muốn thực thi một số mã JS sau khi DOM được khởi tạo,

drupal_add_js('jQuery(document).ready(function () { alert("Hello!"); });', 'inline');

1

Ngoài ra, #attachedkhóa của một biểu mẫu có thể được sử dụng để gửi biến php đến js.

  $my_variable = 'My custom value';
  $form['some-element']['#attached']['js'] = array(
    array(
     'data' => drupal_get_path('module', 'my_module') . '/js/script.js',
    ),
    array(
      'data' => array(
        'variable' => $my_variable,
       ),
      'type' => 'setting',
    ),
  );

Điều này có thể được sử dụng trong hook_form_alterví dụ.


-10

Cách dễ nhất là chỉ lặp lại nó thành thẻ script:

<script type="text/javascript">
   var variableName = <?php echo $variable ?>;
</script>

Nếu Drupal sử dụng ngôn ngữ tạo khuôn mẫu, bạn cần thay thế <?php echo... ?>bằng phương thức đầu ra phù hợp ...


Ngoài ra nếu biến là một chuỗi, bạn nên đặt nó trong dấu ngoặc kép và thoát nếu cần.

1
Scott gợi ý, sử dụng Drupal.sinstall, chắc chắn là cách chính xác để thực hiện điều này.
Chaulky

1
Đây không phải là một tiêu chuẩn drupal.
Jayendra Kainthola
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.