我试图在页面上显示的项目中添加like选项。
所以工作流程如下:
我做了以下选项:
<a href="like.php?type=gifLike&id=<?php echo $item->getId();?>">like</a>
和like.php
header('Location:gifs.php');
然后点击之后,由于此操作,之前的搜索结果丢失了,因此我收到空白页/通知错误,因为我以前的用户输入数据已经消失。
是否有任何选项可以在同一页面上添加此类内容?
好吧,我刚刚意识到搜索结果是随机生成的一种&#39;给定输入的基础,所以看起来我必须在这里使用javascript。
答案 0 :(得分:1)
如果您想向服务器发出请求但让用户保持在同一页面,您应该使用JavaScript来发出POST请求。
如果你使用jQuery,那就是这样的:
<head>
<!-- add jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<!-- ... -->
<!-- adding class "like" so we can easily find all elements -->
<a href="like.php?type=gifLike&id=<?php echo $item->getId();?>" class="like">like</a>
<!-- repeat more a href... -->
<script>
// $(function(){... executes after document load (DOM is ready)
$(function(){
// add "onclick" event listener to all "a" with class "like"
$('a.like').on('click', function() {
// $(this) - the element which was clicked
// take its attribute "href"
var url = $(this).attr('href');
// use POST, not GET so browser and proxies will not cache it
$.post(url, {}, function(result) {
alert('You have liked it!');
console.log(result); // you can get response from server
});
// stop going to link URL in browser
return false;
});
});
</script>
答案 1 :(得分:0)
在我看来不是最好的选择,但是如果你想继续使用php,你可以将必要的数据发送回header('Location:gifs.php?data=' . $yourdata);