Ajax 仅适用于第一次从 php 中的 while 循环中获取数据
Posted
技术标签:
【中文标题】Ajax 仅适用于第一次从 php 中的 while 循环中获取数据【英文标题】:Ajax only working for first fetching data from while loop in php 【发布时间】:2021-03-01 22:33:52 【问题描述】:我有一些评论框系统。哪些来自带有specefiq post id的mysql数据库。但是,每当我在评论框上写文本并提交这些文本时,只有来自 while 循环的第一个框工作正常。但其他人没有采取数据。我将类用于那些评论框部门而不是 id。这里有什么问题?来自mysql数据库的所有盒子如何才能很好地作为第一个输入数据?
这是我的代码
while($rowCom = $resultComment->fetch_assoc())
$posterID= $rowCom['poster'];
$posterComment = $rowCom['comment'];
$Commenttime = $rowCom['datetime'];
?>
<div class="comment-form-login">
<input type="number" class="userPostID" name="postid" value="<?php echo $postID ?>" style="display:none;">
<input type="number" class="userID" name="postuser" value="<?php echo $userID ?>" style="display:none;">
<input type="number" class="LoginUserID" name="LoginUser" value="<?php echo $userLogin ?>" style="display:none;">
<input type="text" class="usercomment leave-a-comment" placeholder="Leave a comment">
</div>
<php
?>
来自 ajax 的代码
$(".leave-a-comment").on('keypress',function(e)
if(e.which == 13)
var userpostID = $(".userPostID").val();
var userID = $(".userID").val();
var loginuserID = $(".LoginUserID").val();
var loginComment = $(".leave-a-comment").val();
$.ajax(
type: "POST",
async: false,
data:
"done":1,
"userPOSTID":userpostID,
"userID":userID,
"loginUserID":loginuserID,
"LoginComment":loginComment
,
success: function(data)
$(".userPostID").val('');
$(".userID").val('');
$(".LoginUserID").val('');
$(".leave-a-comment").val('');
);
);
【问题讨论】:
我没有看到一个while循环!我在您的 Ajax 帖子中没有看到url:
参数?看不出这是怎么回事!
@RiggsFolly PHP 代码在同一页面中,这就是为什么不使用任何 url。它仅适用于第一个查询。但不适用于所有其他查询
Check the pink box
【参考方案1】:
这是因为以下几行:
var userpostID = $(".userPostID").val();
var userID = $(".userID").val();
var loginuserID = $(".LoginUserID").val();
var loginComment = $(".leave-a-comment").val();
$(".userPostID")
选择整个页面上所有类为.userPostID
的元素。然后jQuery的.val()
函数返回匹配元素集合中第一个元素的值,这意味着你的第一个帖子的值。
将代码改成如下:
var userpostID = $(this).siblings(".userPostID").val();
var userID = $(this).siblings(".userID").val();
var loginuserID = $(this).siblings(".LoginUserID").val();
var loginComment = $(this).val();
在你的 ajax 成功函数中做同样的事情。
【讨论】:
很高兴听到这个消息:)以上是关于Ajax 仅适用于第一次从 php 中的 while 循环中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
file_exists 或 getimagesize 仅适用于本地、绝对文件路径,但不适用于 PHP 中的 URL