javascript - PHP 字符串与 Javascript 兼容(引号)

标签 javascript php html

我正在尝试插入一些选项来选择哪些选项是从数据库中获取的,并且也被放置到 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";
}

控制台屏幕: enter image description here

Ps.:为什么要删除消息开头的“嗨”?想要打个招呼并感谢您的每一个帮助。现在看来我很粗鲁:(

最佳答案

  • $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>" .

    “简化”,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>"

另一种方法是remove quotes from JSON-encoded string on PHP side

关于javascript - PHP 字符串与 Javascript 兼容(引号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199611/

相关文章:

javascript - 无法选择单选按钮

javascript - 如何实现按钮而不是单选按钮

c# - 按钮单击 MVC 后的部分加载

javascript - 如何从 Form-POST 操作和 JavaScript 将 CSS 和 HTML 元素呈现回客户端浏览器?

linux 上的 php apache

php - symfony中的构造函数注入(inject)

javascript - "for"循环中的 Ajax 调用跳过奇数/偶数迭代

带有 MVC 的 Javascript 在没有浏览器调试器的情况下无法在 IE 中运行

php 5.3 数组兼容性

javascript - Internet Explorer 无法正确显示下拉菜单