gpt4 book ai didi

javascript - 将字符串 PHP 传递给 Javascript Spaces

转载 作者:行者123 更新时间:2023-11-30 16:09:51 25 4
gpt4 key购买 nike

我试图将字符串从 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>

最佳答案

与空格无关。而且您还没有给我们完整的代码。我猜 HTML 在 echo 中?如果是这样,您需要这样做:

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 - 将字符串 PHP 传递给 Javascript Spaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com