【发布时间】:2017-09-04 05:58:04
【问题描述】:
在我的项目中,我使用 PHP 来查询数据库(在我的例子中是 SELECT)并使用 while 循环来获取每一行,并使用它来回显到 ajax。
就像在我的 PHP 中一样:
$sql = "SELECT * FROM tasks A WHERE A.open = '1'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
while ($row = $stmt->fetch()){
echo $row["orderDetails"];
}
在我的 HTML 中:
<script>
$(function(){
$.ajax({
method: "POST",
url: "getDetails.php",
success: function(backData){
$("#details").html(backData);
}
});
<script>
假设我在数据库中查询任务表中 task.open=1 中的打开任务,然后在每个打开的任务中,我回显给我的 ajax 关于这些任务的详细信息,我的 ajax 将更改 html关于任务详情的 div。
所以基本上,打开任务的数量,也就是 while 循环的数量,就是回显的数量。获取此数字的最佳方法是什么,以便我可以在 html 中显示此处列出了多少任务?
PS:我试图通过在 while 循环内添加一个 while 循环计数器来捕获这个数字,并将这个数字添加到 div 的属性并回显到 ajax,但是,我不知道为什么这个回显会没有发生在我的最后。
谢谢大家!
【问题讨论】:
-
我找到了一种思路。我将计算我的 html 中有多少个 div。
-
我突然想到了另一个问题。 html() 是 jquery 实际上会将内容添加到所选元素还是完全替换它?
-
如the
.html()method's documentation 中所述,它替换了现有内容。 -
谢谢@nnnnnn,这就是我的想法,但我问这个问题的原因是因为当我在while循环中将数据回显到ajax并在我的jQuery中我选择了具有唯一性的div id 使用 html() 替换内容,div实际上会加起来就是前端的回显数。如果是替换内容,为什么不只显示最后一个回显内容,而不是显示所有回显??
-
浏览器不会单独接收回声,它会从服务器接收单个响应,其中包括所有连接在一起的回声的文本。浏览器无法知道(也不关心)PHP 是使用单个
echo语句还是循环,或者两者都不使用。
标签: php jquery ajax while-loop