ニュースフィード(Facebookなど)で嫌いなボタンを作った。誰かがPHPを使ってこれらのボタンのいずれかをクリックしたときにデータベースを変更したいと思います。私は最初に2つのボタンをフォームで作成しましたが、PHPは別のページで実行され、最初のページをリロードして、ニュースフィードの先頭に戻るようにしました(もちろんこれは起こりません)。それからJavascriptを試しましたが、JavascriptからPHPへの投稿のIDを渡す必要がありました。私はクッキーでこれをやってみました:クッキーJavascript/PHP
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を示していましたが、2番目のアラートは「10」でした。
どうしたのですか?
idをJavaScriptからPHPに転送するにはどうすればよいですか?
誰かがニュースフィードを一番上に戻さずにボタンをクリックしたときにPHPコードを実行する良い方法がありますか?
ありがとうございました
わたしのようにそれは働いていない何か。何も起こりません。私は理解していません: 'XHR.addEventListener(" load "、function(){ //は嫌われました })' –
これはサーバーが復帰したときに実行されるコールバックです。 – powerc9000
何も起きません...コードが機能しません。助けてください –