Cookies Javascript/PHP
我在一个新闻提要(比如Facebook)中制作了喜欢/不喜欢按钮。我想在有人使用PHP单击其中一个按钮时更改数据库。我首先在一个表单中创建了这两个按钮,但是PHP将在另一个页面上运行,并重新加载第一个页面,从而使您返回到新闻提要的顶部(这当然不应该发生)。然后我尝试了Javascript,但我需要将文章的id从Javascript传递到PHP。我试着用饼干做这个:Cookies Javascript/PHP,javascript,php,cookies,Javascript,Php,Cookies,我在一个新闻提要(比如Facebook)中制作了喜欢/不喜欢按钮。我想在有人使用PHP单击其中一个按钮时更改数据库。我首先在一个表单中创建了这两个按钮,但是PHP将在另一个页面上运行,并重新加载第一个页面,从而使您返回到新闻提要的顶部(这当然不应该发生)。然后我尝试了Javascript,但我需要将文章的id从Javascript传递到PHP。我试着用饼干做这个: document.cookie=和$\u cookie[] function like(id) { document.coo
document.cookie=
和$\u cookie[]
function like(id) {
document.cookie="lid="+id;
<?php query("INSERT INTO `likes`(`uid`, `pid`) VALUES (".$_SESSION['id'] . ",".$_COOKIE['lid'].")"); ?>
}
function dislike(id) {
document.cookie="lid="+id;
<?php query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$_COOKIE['lid']); ?>
}
类函数(id){
document.cookie=“lid=”+id;
}
函数(id){
document.cookie=“lid=”+id;
}
这不起作用,所以我添加了一些警报以了解发生了什么
function like(id) {
<?php $_COOKIE['lid'] = "10"; ?>
alert("Like:" + id);
document.cookie="lid="+id;
<?php query("INSERT INTO `likes`(`uid`, `pid`) VALUES (".$_SESSION['id'] . ",".$_COOKIE['lid'].")"); ?>
alert("<?php echo $_COOKIE['lid']; ?>");
}
function dislike(id) {
<?php $_COOKIE['lid'] = "10"; ?>
alert("Dislike:" + id);
document.cookie="lid="+id;
<?php query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$_COOKIE['lid']); ?>
alert("<?php echo $_COOKIE['lid']; ?>");
}
类函数(id){
警报(“如:+id”);
document.cookie=“lid=”+id;
警报(“”);
}
函数(id){
警惕(“不喜欢:+id”);
document.cookie=“lid=”+id;
警报(“”);
}
第一个警报显示正确的id,但第二个警报显示“10”
我做错了什么
如何将id从JavaScript传输到PHP
当有人点击一个按钮而不让新闻提要返回顶部时,还有其他好的方法来运行PHP代码吗
谢谢,Javascript不会运行PHP 所发生的事情是在将页面发送给用户之前运行PHP代码 在解释PHP之后 以前
function dislike(id) {
<?php $_COOKIE['lid'] = "10"; ?>
alert("Dislike:" + id);
document.cookie="lid="+id;
<?php query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$_COOKIE['lid']); ?>
alert("<?php echo $_COOKIE['lid']; ?>");
}
因此,当用户看到页面时,代码
已经运行,因此类似的内容被删除
您需要使用户正确地执行此操作
function dislike(id){
var XHR = new XMLHttpRequest();
XHR.addEventListener("load", function(){
//was disliked
})
XHR.open("get", "dislike.php?id="+id);
XHR.send();
}
类似于javascript的内容
php
<?php
parse_str($SERVER["QUERY_STRING"], $arr);
if(isset($arr["id"]){
query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$arr["id"]);
}
它不工作了。什么也没发生。我不明白:XHR.addEventListener(“load”,function(){//was disliked})
这是服务器返回时运行的回调。什么都没有发生……代码不工作。请帮忙
<?php
parse_str($SERVER["QUERY_STRING"], $arr);
if(isset($arr["id"]){
query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$arr["id"]);
}