index.php
if (idx == 8) {
var str="<?php echo $username1; ?>";
document.write(str);
jQuery.get("usermessage.php?username="+str, function(data) {
document.write(data);
var msgIDss = $(".messagepiece:last").attr("id");
document.write(msgIDss);
});
}
usermessage.php
$username1=$_GET["username"];
$query2 = "SELECT id, message, datetime FROM messages WHERE username='{$username1}' ORDER BY id";
$result2 = mysql_query($query2,$connection) or die (mysql_error());
confirm_query($result2);
$num = mysql_num_rows($result2);
while($userinfo = mysql_fetch_array($result2)){
$msgID= $userinfo['id'];
echo "<div class=\"messagepiece\" id=" . $msgID . ">" . $userinfo['id'] .
$userinfo['message'] . "<br><span style=\"font-size:13px; color:orange;\">" .
$userinfo['datetime'] . "</span></div>|";
}
我的问题是document.write(msgIDss)
显示空/空值。
在index.php上,我测试了document.write(data);它的工作原理。我已经测试了document.write(str)
,它也有效,所以if (idx == 8)
不是问题。我还手动测试了打开usermessage.php并成功显示所有div,因此usermessage.php页面不是问题。我想问题出现在这行代码var msgIDss = $(".messagepiece:last").attr("id")
上。如何解决?
答案 0 :(得分:3)
我猜这是因为你没有用双引号包装'id'属性的值,你正在测试的浏览器不能正确获取id。
尝试以下方法:
echo "<div class=\"messagepiece\" id=\"" . $msgID . "\">"
答案 1 :(得分:0)
您可以尝试:
echo "<div class=\"messagepiece\" id=\"" . $msgID . "\">"
请注意id
值周围添加的转义引号。
答案 2 :(得分:0)
我认为问题是id属性是以数字开头的。使用字符串作为前缀应修复:
echo "<div class=\"messagepiece\" id=\"message-" . $msgID . "\">" ......