以下效果很好:
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>';
为什么它不能被使用,如果它与第一个例子相同?我无法提醒,或将其分配给一个字段,但我可以用第一个例子。
答案 0 :(得分:1)
你在php中使用php标签而不是javascript标签:
var options = '<?= $options_select ?>';
应该是:
echo '<script language="javascript" type="text/javascript">var options="' . $options_select . '";</script>';
答案 1 :(得分:0)
尝试可能html编码所有输出选项,可以在某处隐藏一些特殊字符