我正在尝试插入一些选项来选择从DB中获取的选项,并将其放置到jQuery代码中。我使用了json_encode,但这并没有解决所有问题。
基本上,/被转义并且只有单引号,这很好,但它在字符串的开头和结尾放置双引号:
我在控制台中看到的示例代码:
"<div style='display: inline-block; width: 30%;'>"+
"Article categories:"+
"<br>"+
"<select name='article_cat' class='textbox' style='width:250px;'>"<option value='1'>Random<\/option>\n"</select>"+
"</div>"+
在控制台中使用此错误代码:
Uncaught SyntaxError: Unexpected identifier
这是PHP文件本身的jQuery代码:
var options4 = {
dataType: 'json',
success: function(output) {
$("... BLA BLA BLA .... 40 lines of code....."+
"<div style='display: inline-block; width: 30%;'>"+
"Article categories:"+
"<br>"+
"<select name='article_cat' class='textbox' style='width:250px;'><?php echo json_encode($art_catlist); ?></select>"+
"</div>"+
"Bla bla bla .... another 20 lines of code"+
"</div>").insertBefore("#new_background_header");
Some more jQuery code......
}
有人知道为什么会这样吗?
这段代码创建了一个选项列表(它也必须在PHP中使用,所以不能真正改变它):
while ($data = dbarray($result)) {
$art_catlist .= "<option value='".$data['article_cat_id']."'>".$data['article_cat_name']."</option>\n";
}
来自控制台的屏幕:
Ps。:为什么你在消息开头删除Hi?想嗨,谢谢你的帮助。现在看来我很粗鲁:(
答案 0 :(得分:1)
$art_catlist
- 是PHP中的字符串。其内容为:<option value='1'>Random<\/option>
。
json_encode($art_catlist)
- 生成此字符串的JSON表示,即结果包含双引号。字符串的 内容 为:"<option value='1'>Random<\/option>"
"<select name='article_cat' class='textbox' style='width:250px;'><?php echo json_encode($art_catlist); ?></select>"
- 产生以下输出:
"<select name='article_cat' class='textbox' style='width:250px;'>"<option value='1'>Random<\/option>"</select>"
。
&#34; Simplified&#34;,JavaScript会看到以下令牌:"some string"<option value
...
所以在JS中你有一个字符串文字,然后是比较运算符,然后是一个标识符,然后(这是JS中的语法错误)空间和另一个标识符。
最简单的解决方案是添加由JS运行的字符串连接。
PHP代码:
"<select name='article_cat' class='textbox' style='width:250px;'>"
+ <?php echo json_encode($art_catlist); ?>
+ "</select>"