gpt4 book ai didi

javascript - Cookies Javascript/PHP

转载 作者:行者123 更新时间:2023-11-29 23:48:30 24 4
gpt4 key购买 nike

我在新闻提要(如 Facebook)中制作了喜欢/不喜欢按钮。当有人使用 PHP 单击这些按钮之一时,我想更改数据库。我首先在一个表单中制作了两个按钮,但随后 PHP 将在不同的页面上运行并重新加载第一页,导致您返回到新闻提要的顶部(这当然不应该发生)。然后我尝试了 Javascript,但我需要将帖子的 id 从 Javascript 传递给 PHP。我试着用 Cookies 做这个:

document.cookie=$_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']); ?>
}

这不起作用,所以我添加了一些警报以了解发生了什么。

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,但第二个警报显示“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) {
alert("Dislike:" + id);
document.cookie="lid="+id;
alert("10"); //whatever that cookie id was
}

所以代码 <?php query("DELETE FROM `likes` WHERE uid=".$_SESSION['id'] . " AND pid=".$_COOKIE['lid']); ?>在用户看到该页面时已经运行,因此类似内容已被删除

您需要用户 AJAX正确地做到这一点。

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"]);
}

关于javascript - Cookies Javascript/PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43351462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com