单击div后,ajax请求将通过一个param(id)发送到PHP。但是,我收到的不是一张表格,而是一张表格。
无论使用while循环,还是放置LIMIT进行查询,我总是在表中获取所有内容。
这是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请求之后,我从服务器获得的响应是:第一,第二,第三,第四,第五,第三。最后一个是我唯一需要的一个。
那我到底在做什么错呢?
先谢谢大家!
答案 0 :(得分:0)
问题在于,一旦返回所需的输出,就永远不会exit()
。因此,将执行if
表达式下面的所有指令并将其混合到您的输出中。
将来,请创建一个最小,完整且可验证的示例,以便我们可以更早地看到。
if(isset($_POST['singleStoryInfoWithId'])) {
getStoryWitId($_POST['singleStoryInfoWithId']);
}
echo 'This will still get mixed in with the output';
调用getStoryWitId()
后,您需要exit()
,以便程序忽略以下任何说明。
if(isset($_POST['singleStoryInfoWithId'])) {
getStoryWitId($_POST['singleStoryInfoWithId']);
exit();
}
echo 'This will no longer get mixed in with the output';