将字符串PHP传递到Javascript空间
Passing string PHP to Javascript Spaces
我试图将一个字符串从PHP传递到javascript中,但失败得很惨。从测试中,我可以看到空白使我的测试失败。我如何正确地编码以传递给javascript我尝试了%20,但又尝试了几次,似乎都不起作用。
全源
<script async src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
function DemoOne(text) {
$('#PageView').load('test.php?text=' + text);
}
</script>
<?php
$message="hello";
echo " <a href='"javascript:DemoOne('$message');'" ><input class='btn' type='button' value='Test'></a>
<div id='PageView'></div>";
?>
测试输出Test.php
<?php
echo $_GET['text'];
?>
跟踪
添加下面的代码仍然失败——似乎只有删除空格才能使上面的示例正常工作。
a href='"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");'" ><input type='button' value='Submit'></a>
<div id='PageView'></div>
echo "<a href='"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");'" ><input type='button' value='Submit'></a>
<div id='PageView'></div>";
即json_encode
您传递给JavaScript的任何数据。您还需要为HTML转义它,因为它位于属性中,而不是<script>
标记中。
您还需要转义URL的查询参数。
我修改了你的代码来修复编码问题:
<script async src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
function DemoOne(text) {
$('#PageView').load('test.php?text=' + encodeURIComponent(text));
}
</script>
<?php
$message="hello";
echo " <a href='"javascript:DemoOne(".htmlspecialchars(json_encode($message)).");'" ><input class='btn' type='button' value='Test'></a>
<div id='PageView'></div>";
或者,让jQuery执行转义:
function DemoOne(text) {
$('#PageView').load('test.php', {text:text});
}
相关文章:
- JavaScript名称空间和对象创建
- 在javascript中使用命名空间
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 如何使用javascript命名空间
- 转换自的JavaScript命名空间
- 什么's当前命名空间/类中JavaScript子命名空间/类的语法
- 静态html中图像之间的空间在javascript中消失
- 在Firebug控制台中监视javascript命名空间变量
- 在Alfresco中动态创建空间/文件夹的Javascript;t工作正确
- 用自定义javascript全局命名空间替换窗口
- 怎么了?通过字符串定义 JavaScript 命名空间
- Javascript 命名空间/最佳实践
- IE中的Javascript命名空间抛出错误
- 处理此命名空间 JavaScript 结构的最佳方法是什么?
- 影响JavaScript / CSS的HTML空间格式
- 将 JavaScript 封装在命名空间中
- 将索引值传递给javascript命名空间数组
- 在javascript中,别名名称空间
- 如何在javascript模块中包含jquery而不与全局名称空间冲突
- 将字符串PHP传递到Javascript空间