我通过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,但这对我来说似乎也不适用。
请指导
答案 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>';
此致