在单击div之后,ajax请求被发送到带有单个参数(id)的php。但是,我收到的不是一行,而是一整张table。
不管使用while循环,还是限制查询,我总是得到表中的所有内容。
这是jquery:
$('.fa-expand').click(function() {
var storyId = $(this)[0].id.split('_')[1];
var data = {singleStoryInfoWithId: storyId};
$.ajax({
url: '../modules/feed.php',
type: 'POST',
data: data,
success: function(response) {
$('.newsModal').append(response);
console.log(response);
}
});
});
这是php:
if(isset($_POST['singleStoryInfoWithId'])) {
getStoryWitId($_POST['singleStoryInfoWithId']);
};
function getStoryWitId ($id) {
global $connectionFeed;
$query = "SELECT story_title, story_date, story_content, story_cover FROM story WHERE story_id={$id}";
$result = mysqli_query($connectionFeed, $query);
$row = mysqli_fetch_assoc($result);
$story_title = $row['story_title'];
$story_content = $row['story_content'];
echo "<h2>$story_title</h2>";
echo "<h2>$story_content</h2>";
}
它确实发送请求的查询,但是在整个表的末尾。
在我的数据库中,我有5个故事(第一,第二,第三,等等),当我点击第三个故事时,例如,在发送ajax请求之后,我从服务器得到的响应是:第一,第二,第三,第四,第五,第三。最后一个是我唯一需要的。
我到底做错了什么?
提前谢谢各位!
1条答案
按热度按时间qxgroojn1#
问题是你从来没有
exit()
一旦您返回了所需的输出。因此,下面的任何说明if
表达式将被执行并混合到输出中。在将来,请创建一个最小的,完整的和可验证的例子,以便我们可以看到这个更早。
在你打电话给
getStoryWitId()
你需要exit()
所以程序忽略了下面的指令。