如何将php Json编码的对象正确地提供给javascript方法。
我试图将一个PHP json_编码的对象传递给一个接受2个参数的函数。但当它在浏览器上呈现时,它一直说 在Firefox的Inspector上: SyntaxError:在参数列表之后缺少) 关于Chrome的检查员: 未捕获的语法错误:输入意外结束 代码:如何将php Json编码的对象正确地提供给javascript方法。,javascript,Javascript,我试图将一个PHP json_编码的对象传递给一个接受2个参数的函数。但当它在浏览器上呈现时,它一直说 在Firefox的Inspector上: SyntaxError:在参数列表之后缺少) 关于Chrome的检查员: 未捕获的语法错误:输入意外结束 代码: <td> <a href="#" onclick="showEditModal(<?php echo json_encode($value, JSON_HEX_APOS) ?>)">Edit</a&
<td>
<a href="#" onclick="showEditModal(<?php echo json_encode($value, JSON_HEX_APOS) ?>)">Edit</a>
</td>
浏览器上的源代码:
<td>
<a href="#" onclick="showEditModal({"id":2,"title":"Announcement 1","content":"Announcement 1 Content","dateAdded":"2018-04-24 14:44:27"})">Edit</a>
</td>
我尝试添加\'
,但没有帮助。也许我做错了。从昨晚开始我就一直在做这个,所以我想我现在需要问一下
我每次测试时都会清除浏览器的缓存,但得到的结果相同。也有类似的问题,但我尝试过,但无法解决我的问题
我非常感谢你的帮助 内联事件处理程序本质上是HTML标记中的
eval
——它们是一种不好的做法,会导致代码分解不良,难以管理,特别是当您试图使用PHP这样的动态编写时。认真考虑用JavaScript附加事件,例如:
要将数据从服务器发送到客户端,您应该使用data-
属性、application/json
或网络请求。例如,以应用程序/json
路由为例,您可以执行以下操作:
<td>
<a href="#">Edit</a>
<script type="application/json">
<?= json_encode($value, JSON_HEX_APOS) ?>
</script>
</td>
你要做的就是改变报价。对于onclick函数,从“到” 浏览器读取您的HTML作为
<a href="#" onclick="showEditModal({"id":2,"title":"Announcement 1","content":"Announcement 1 Content","dateAdded":"2018-04-24 14:44:27"})">Edit</a>
当你想把它读成
<a href="#" onclick='showEditModal({"id":2,"title":"Announcement 1","content":"Announcement 1 Content","dateAdded":"2018-04-24 14:44:27"})'>Edit</a>
检查语法突出显示中的差异
因此,你得到了
SyntaxError:在参数列表之后缺少)
但就像前面提到的@CertainPerformance一样。最好不要将其作为内联函数编写。将值设置为JS对象,并在执行函数时使用它。尽可能避免
内联函数
。您所要做的就是更改onclick函数的引号。从“
到”
。@user1496463谢谢。这就解决了问题。我不认为这是那么容易,因为我最近才开始继续学习网络开发。来自爪哇。谢谢,谢谢你的回答。这对我将来会很有用的。代码很整洁。我还在努力让自己熟悉它在网络上的工作原理。我肯定会在我的编码中应用这种风格。谢谢,谢谢。我很感激。这是一个简单的解决方案,但确实解决了它。从昨晚起就一直在试图修复它,现在它开始工作了。不过我找到了另一种方法。有人建议在php中使用htmlentities()
,这同样有效。是的,我同意@特定的性能是一种很好的编码方式。必要时,我通常尝试在不同的文件上分离代码块。
<a href="#" onclick='showEditModal({"id":2,"title":"Announcement 1","content":"Announcement 1 Content","dateAdded":"2018-04-24 14:44:27"})'>Edit</a>