将信息从Drupal 7中的模块文件传递到JS文件

时间:2014-12-13 18:58:07

标签: javascript php jquery html drupal-7

在我的一个网页中,我多次打印一个按钮,并且都有不同的logId。我希望当用户点击时,JQuery会出现在图片中,并且应该没有服务器端回发。由于唯一的日志ID与每个按钮相关联,因此当单击按钮时,我将信息从* .Module传递给JS文件,如下所示: -

*。模块文件 - PHP文件

$thm_button .= '<input type="button" class="clsPrevious" id="btnPrev_'.$user->uid.'_'.$logid;>';

*。js文件

$('.clsPrevious', context).click(function (event) {
   var previousLog=this.id.split('_');

   //Retrieve log Id and Process the log id using AJAX call
}

这在这里运行正常,但我觉得存在安全问题,因为每个人都可以在HTML源代码中查看按钮的日志ID。

Drupal / PHP / HTML中是否有任何方法可以将敏感信息传递给JS而不在HTML Viewer中显示。

1 个答案:

答案 0 :(得分:2)

您可以使用&#34; Drupal.settings&#34;将值从PHP传递到Javascript。

详细了解here

您可以创建一个类似于此的输入按钮。

$thm_button .= '<input type="button" class="clsPrevious" data-myModule=" . $key . ">;

其中$key是随机/串行变量,但每个日志ID是唯一的。

创建键值对的映射数组,并使用drupal_add_js传递给javasript()

<?php
  drupal_add_js(array('myModule' => array('_YOUR_CUSTOM_KEY_1_' => '_LOG_ID_1_')), 'setting');
?>

现在将您的点击功能修改为,

$('.clsPrevious', context).click(function (event) {

  var key = $(this).attr("data-myModule");

  // Now a this point you have the lookup table in Drupal.settings.myModule
  // use the "key" variable to find the LOG ID
}