[英]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>
與空格無關 。 您還沒有提供完整的代碼。 我猜HTML在回顯內? 如果是這樣,您需要這樣做:
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});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.