[英]jQuery load() function not working
知道為什么這段代碼:
$('body').on('click', 'a.friend' , function(e){
e.preventDefault();
overlayerOn();
var $uid = $(this).attr("href");
var $br = $('#board');
$br.css('display', 'block');
$('#board').load("messages.php?uid=" + $uid);
});
在... php?uid =中沒有發送任何內容?
這是php腳本(但到目前為止,什么也沒有嘗試接收變量):
$id = $_REQUEST['uid'];
echo "<div id='hovno'>" . $id . "</div>";
而且每次我只收到空的div標簽。
但是當這樣的時候:
$('body').on('click', 'a.friend' , function(e){
e.preventDefault();
overlayerOn();
var $uid = $(this).attr("href");
var $br = $('#board');
$br.css('display', 'block');
$('#board').text($uid);
});
它打印出實際的正確值。 為什么它不能通過? 謝謝
您的變量$uid
包含href,它可能是某種URI。 在將其發送到PHP之前對其進行編碼,以便可以從$_GET
正確檢索它。
$('body').on('click', 'a.friend' , function(e){
e.preventDefault();
overlayerOn();
var $uid = $(this).attr("href");
var $br = $('#board');
$br.css('display', 'block');
// Send the encoded URI to PHP.
$('#board').load("messages.php?uid=" + encodeURIComponent($uid));
});
在看到PHP發布之后,我將添加一下,當您將值直接從HTTP請求傳遞到PHP輸出時,應該避免跨站點腳本攻擊。
$id = $_REQUEST['uid'];
echo "<div id='hovno'>" . htmlspecialchars($id) . "</div>";
為什么不將$uid
放在.load()的數據選項中?
$('#board').load("messages.php", { 'uid': $uid } );
在您的PHP腳本中使用$_POST['uid']
來接收數據...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.