为了账号安全,请及时绑定邮箱和手机立即绑定

json_encode 用于多行字符串 php 到 javascript

json_encode 用于多行字符串 php 到 javascript

PHP
红糖糍粑 2022-05-27 15:57:00
我正在尝试将一个字符串从 php(来自 mysql)传递到 javascript 中具有多行的变量中。我知道我需要使用 php 的 json_encode() 来做到这一点。它来自 textarea 和 javascript 打开一个小窗口,应该写它的输出。但我似乎无法克服同样的错误:Uncaught SyntaxError: Unexpected end of input我猜还有其他我需要在 javascript 中做的事情这是非常简单的js函数:function view_notes(notes) {  var myWindow = window.open("", "MsgWindow", "width=400,height=400"); console.log(notes);  myWindow.document.write(notes);}</script>这是php:if ($result = $conn->query($sql)) { // echo "regulars <br>";    /* fetch associative array */    while ($row = $result->fetch_assoc()) {      $phone=$row['phone'];      $formatted_phone=format_phone($phone);      $notes=$row['notes'];      $js_notes=json_encode($notes);      var_dump($js_notes);      echo"<tr>";      echo "<td>";      echo $row['First_Name'];      echo "</td>";      //echo "&nbsp";      echo "<td>";      echo $row['Last_Name'];      echo "</td>";     // echo "&nbsp";      echo "<td>";      echo $formatted_phone;      echo "</td>";    //  echo "&nbsp";      echo "<td>";      echo $row['email'];      echo "</td>";      echo "<td>";      echo $row['court_status'];      echo "</td>";      echo "<td>";      echo "<button onclick=\"view_notes($js_notes)\">View Notes</button>";      echo "</td>";      }      /* free result set */      $result->free();  }
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您没有正确连接字符串。解决替换这条线


echo "<button onclick=\"view_notes($js_notes)\">View Notes</button>";


echo "<button onclick='view_notes(".$js_notes.")'>View Notes</button>";

要解决换行问题,请再创建一个 javascript 函数


function nl2br (str, is_xhtml) {

    if (typeof str === 'undefined' || str === null) {

        return '';

    }

    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';

    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');

}

并像这样在 view_notes 函数中使用上述函数


function view_notes(notes) {

  var myWindow = window.open("", "MsgWindow", "width=400,height=400");

  console.log(notes);

  myWindow.document.write(nl2br(notes));

}


查看完整回答
反对 回复 2022-05-27
?
手掌心

TA贡献1942条经验 获得超3个赞

你能分享console.log(notes)的结果吗?

因为我认为问题是这里的引号不匹配 - echo "View Notes"; 当它评估它时,它会将 $js_notes 放在双引号中,这会破坏 HTML 语法规则。

在浏览器中查看页面的源代码并检查这一行。

希望这会有所帮助。


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号