Câu trả lời:
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.
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');
Ngoài ra, #attached
khó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_alter
ví dụ.
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 ...