Drupal 7 Javascript不存储值

时间:2014-04-23 14:02:54

标签: ajax drupal drupal-7

我通过Ajax调用获取数据。该数据具有以下代码,使用.data()将一些值从PHP存储到Javascript变量。我很确定php变量有值但是值不会存储在js中。看看

所以有一个ajax方法

'#ajax' => array(
                    'callback' => 'a_e_get_score',

它调用具有js代码的函数

$out .= '
<script type="text/javascript">
jQuery("#chkso").data("paragraphs",' . json_encode($this->result->data->analysis->so->paragraphs) . ');
jQuery("#chkso").data("domExpression",' . json_encode($this->result->data->analysis->so->paragraphDOM) . ');
jQuery("#chkso").data("tooSimpleColor",' . json_encode($light_blue) . ');
jQuery("#chkso").data("tooComplexColor",' . json_encode($light_orange) . ');
</script>';
      return $out;

现在我试图运行

$("#chkso").data('paragraphs');

它说未定义。

我如何真正传递这些价值观?我知道还有另一种方式提到here,但这对我来说似乎也不适用。

请指导

2 个答案:

答案 0 :(得分:0)

如果使用drupal_add_js()函数。

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

然后在您的javascript文件中,您可以像这样访问您的值:

Drupal.settings.myModule.key

如果您只想从模块文件向javascript发送数据,则不需要使用此

'#ajax' => array(
                 'callback' => 'a_e_get_score',

答案 1 :(得分:0)

感谢大家的帮助。 drupal_json_encode为我做了诀窍。以下代码没有问题。

 $out .= '<script type="text/javascript">
                         var tooSimpleColor = ' . drupal_json_encode($light_blue) . ';
                         var tooComplexColor = ' . drupal_json_encode($light_orange) . ';
                         var domExpression = ' . drupal_json_encode($this->result->data->analysis->so->paragraphDOM) . ';
                         var paragraphs = ' . drupal_json_encode($this->result->data->analysis->so->paragraphs) . ';
                         </script>';

此致