我有一个表,该表由三列组成:
id
author
message
一旦用户单击More
按钮,该按钮会将Count
参数传递给.load
函数。然后应该显示新数据
显示空白页。我在做什么错了?
这是index.php:
<div id="comments">
<?php
$v=$db->prepare('select * from comments limit 2');
$v->execute();
$data=$v->fetchAll(PDO::FETCH_ASSOC);
foreach ($data as $row) {
echo "<div>".$row['author']."</div>";
echo "<div>".$row['message']."</div>";
echo "</br>";
}
?>
</div>
<input type="submit" name="" id="submit" value="More">
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
var commentCount=2;
$('#submit').click(function(){
commentCount=commentCount+2;
$('#comments').load('loadComments.php',{count:commentCount});
});
});
</script>
这是loadComments.php:
<?php
$db=new PDO('mysql:host=localhost;dbname=ajax',"root","");
$newCount=$_POST['count'];
$ex=$db->prepare('select * from comments limit $newCount');
$ex->execute();
$data=$ex->fetchALL(PDO::FETCH_ASSOC);
foreach ($data as $row) {
echo "<div>".$row['author']."</div>";
echo "<div>".$row['message']."</div>";
echo "</br>";
}
?>
EDİT:
如果我使用这种方式,一切都会好的。
$v=$db->prepare('select * from comments limit 3');
但是我已经检查了loadComment.php中的count
参数
echo $newCount;
我就能得到它有趣的值
答案 0 :(得分:2)
问题是因为使用单引号字符串(如'
而不是双引号字符串(如"
)-如注释中的@mrunion所述
在PHP中,当使用'
时,与"
标记相比,内部字符串没有被求值。因此,'select * from comments limit $newCount'
的语句按原样发送,而$newCount
的求值结果不是2或它的值。
有关PHP报价的完整说明,请参见here