任何关于此代码的想法:
$('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']
来接收数据。。。