将值从PHP传递到Javascript变量
我看到过很多关于如何做到这一点的帖子,要么说在php中使用将值从PHP传递到Javascript变量,php,javascript,jquery,Php,Javascript,Jquery,我看到过很多关于如何做到这一点的帖子,要么说在php中使用rawurlencode,在javascript中使用decodeURIComponent,要么就是使用json\u encode。两个都不适合我。希望有人能看到我做错了什么: 我有一个html按钮,如下所示: <button id="editbutton" onClick='edit(this, "<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>", "<?
rawurlencode
,在javascript中使用decodeURIComponent
,要么就是使用json\u encode
。两个都不适合我。希望有人能看到我做错了什么:
我有一个html按钮,如下所示:
<button id="editbutton" onClick='edit(this, "<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>", "<?php echo $result_cameras[$i]["camera_type"]; ?>", "<?php echo rawurlencode($result_cameras[$i]["camera_name"]); ?>")'>Edit</button>
不要在javascript代码中添加任何内容,我得到以下错误:
缺失)在参数列表之后
编辑(此“/dashboard”、“WEBCAM”、“a”a”、“0”、“3DD10C49784E2207DE1E1932958FB…”
其中它指向“a”a
有什么建议吗?您实际上是在输出javascript字符串文字,因此使用htmlentities
不是正确的做法。您需要的是:
编辑:不用说,您还需要对正在回音的其他两个字符串执行此操作
这是正确的原因是,如果忽略addslashes
也转义“null”,则的转义序列与addslashes
的转义序列兼容“字符。但是,该字符不可能成为URL的一部分,因此,addslashes
的功能与Javascript对其字符串文本的期望完全匹配
为了完整起见,我应该提到,htmlentities
的适当用法是处理作为HTML内容的一部分发送的文本;即使如此,(它执行htmlentities
工作的一小部分)几乎总是更合适。您实际上是在输出javascript字符串文字,因此使用htmlentities
不是正确的做法。您需要的是:
编辑:不用说,您还需要对正在回音的其他两个字符串执行此操作
这是正确的原因是,如果忽略addslashes
也转义“null”,则的转义序列与addslashes
的转义序列兼容但是,该字符不可能成为URL的一部分,因此addslashes
的功能与Javascript对其字符串文本的期望完全匹配
为了完整起见,我应该提到,htmlentities
的适当用法是处理作为HTML内容一部分发送的文本;即使如此,(执行htmlentities
工作的一小部分)几乎总是更合适的。
- rawurlencode()用于将字符串转换为URL参数
- htmlentities()用于将字符串转换为HTML内容
如果要将字符串转换为Javascript字符串,则应为:
function f_str_2js($x) {
return str_replace( array("\n","\r","\t","'",'"') , array('\n','\r','\t',"\\'",'\"') , $x)
}
- rawurlencode()用于将字符串转换为URL参数
- htmlentities()用于将字符串转换为HTML内容
如果要将字符串转换为Javascript字符串,则应为:
function f_str_2js($x) {
return str_replace( array("\n","\r","\t","'",'"') , array('\n','\r','\t',"\\'",'\"') , $x)
}
上述答案是正确的,但是您应该考虑将数据添加到PHP数组或对象中,而不是JSONEnCODE,并通过使用jQuery on(E/P>)将其添加到日期属性<代码>日期相机=“{……/代码>”,而不做事件绑定。
通过这种方式,您可以通过
$(This).data('camera')
访问数据。无需向onclick函数添加越来越多的参数,即可轻松扩展应用程序
有关更多信息,请参阅:
http://api.jquery.com/on/<以上的答案是正确的,但是您应该考虑将数据添加到PHP数组或对象中,而不是JSONEnCODE,并通过使用jQuery on(E/P>)将其添加到日期属性<代码>日期相机=“{……/代码>”,而不做事件绑定。
通过这种方式,您可以通过$(This).data('camera')
访问数据。无需向onclick函数添加越来越多的参数,即可轻松扩展应用程序
有关更多信息,请参阅:
http://api.jquery.com/on/我应用了这个,它给出了与我使用json_encode时的描述相同的错误?@Tom:您是否将所有三个匹配项都更改为addslashes
?我应用了这个,它给出了与我使用json_encode时的描述相同的错误?@Tom:您是否将所有三个匹配项都更改为addslashes
?
<?php echo addslashes($_SERVER['REQUEST_URI']); ?>
function f_str_2js($x) {
return str_replace( array("\n","\r","\t","'",'"') , array('\n','\r','\t',"\\'",'\"') , $x)
}