字符串传递给JS
问题描述:
以下效果很好,当不工作:字符串传递给JS
var options = '<select><option value ="Unknown">Unknown</option><option value ="Yes">Yes</option><option value ="No">No</option><option value ="Both">Both</option></select>';
alert(options)
然而,如果该字符串通过PHP的foreach产生时,可变的选项不被识别,因此,我无法与JS使用。例如:
<?php foreach($pickListFields as $field_id => $options): ?>
<?php
$options_array = explode("\n", $options);
$options_select = '<select>';
foreach($options_array as $k => $option) {
$options_select .= '<option value ="' . $option . '">' . $option . '</option>';
}
$options_select .= '</select>';
?>
var options = '<?= $options_select ?>';
<?php endforeach; ?>
上述变量的选择产生的,不起作用,即使当我看到源代码的Firefox,我可以看到VAR的选项是:
var options = '<select><option value ="Unknown">Unknown</option><option value ="Yes">Yes</option><option value ="No">No</option><option value ="Both">Both</option></select>';
那么为什么就不能使用,如果它与第一个例子相同?我无法提醒,或将其分配给一个字段,但我可以用第一个例子。
答
您正在使用PHP内部,而不是JavaScript代码的PHP标签:
var options = '<?= $options_select ?>';
应该是:
echo '<script language="javascript" type="text/javascript">var options="' . $options_select . '";</script>';
+0
不知道这是否工作...它也在我的页面中添加文本。 – luqita 2012-01-16 16:49:27
+0
好吧,我不得不删除
答
尝试也许HTML编码的所有输出选项,可以有一些特殊字符的隐藏的地方
你确定给出的源代码*完全相同吗?我也会尝试删除等号前的空格。 – 2012-01-16 16:19:27
这是,你可以看到它...我只是复制粘贴。 – luqita 2012-01-16 16:20:29
你究竟在哪里尝试使用它?我认为你是在一个JavaScript块内完成这项工作?我们可以从$ pickListFields中看到$ options吗? – dreamrunner 2012-01-16 16:28:15