第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

顯示不同的按鈕或刷新

顯示不同的按鈕或刷新

PHP
達(dá)令說 2022-10-14 14:59:05
我一直在嘗試為論壇帖子制作一個(gè)喜歡/不喜歡的按鈕,我已經(jīng)取得了一些成功,下面的代碼可以正常工作,但我無法刷新頁面。例如 - 當(dāng)我單擊提交按鈕(喜歡)時(shí),數(shù)據(jù)庫已更新,但未顯示不同的按鈕。如果我刷新頁面,現(xiàn)在有一個(gè)不同的按鈕,那么現(xiàn)在有一種方法可以用 jquery 來做到這一點(diǎn),所以一旦點(diǎn)擊了類似的按鈕,它就會(huì)顯示按鈕不像/* Check Database */$likes = DB::run("SELECT * FROM likes WHERE id=? AND lid=? AND uid=? AND pid=?", [1, 1, $CURUSER['id'], $row['id']])->fetch();/* Check Result */var_export($likes);/* If No Result Like */if (!$likes) {echo"<form action='' method='post'><input type='submit' name='like' value='Like' /></form>";if(isset($_POST['like'])){    DB::run("INSERT INTO likes (id, lid, uid, pid) VALUES (?, ?, ?, ?)", [1, 1, $CURUSER['id'], $row['id']]);}}/* If Result UnLike */if ($likes) {echo"<form action='' method='post'><input type='submit' name='unlike' value='Unlike' /></form>";if(isset($_POST['unlike'])){DB::run("DELETE FROM likes WHERE id=? AND lid=? AND uid=? AND pid=?", [1, 1, $CURUSER['id'], $row['id']]);}}/* Show Results */echo '</br>';echo $likes['id'];echo $likes['1id'];echo $likes['uid'];echo $likes['pid'];
查看完整描述

2 回答

?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

表單顯示后數(shù)據(jù)庫被修改,因此新的“喜歡”狀態(tài)不會(huì)反映在頁面上。一種解決方案是在檢查“喜歡”狀態(tài)并顯示表單之前修改數(shù)據(jù)庫。

下面,我使用 PHP 的header. 刷新頁面不是絕對(duì)必要的,但它確實(shí)有助于防止用戶刷新時(shí)重復(fù)提交。這稱為Post/Redirect/Get 模式。

Post/Redirect/Get (PRG) 是一種 Web 開發(fā)設(shè)計(jì)模式,它允許重新加載、共享或添加表單提交后顯示的頁面而不會(huì)產(chǎn)生不良影響,例如再次提交表單。

if(isset($_POST['like'])) {

    DB::run("INSERT INTO likes (id, lid, uid, pid) VALUES (?, ?, ?, ?)", [1, 1, $CURUSER['id'], $row['id']]);

    header('Location: '.$_SERVER['REQUEST_URI']);

    exit;

} elseif (isset($_POST['unlike'])) {

    DB::run("DELETE FROM likes WHERE id=? AND lid=? AND uid=? AND pid=?", [1, 1, $CURUSER['id'], $row['id']]);

    header('Location: '.$_SERVER['REQUEST_URI']);

    exit;

}


/* Check Database */

$likes = DB::run("SELECT * FROM likes WHERE id=? AND lid=? AND uid=? AND pid=?", [1, 1, $CURUSER['id'], $row['id']])->fetch();



if (!$likes) {


    /* If No Result Like */

    echo "<form action='' method='post'>

              <input type='submit' name='like' value='Like' />

          </form>";


} else {


    /* If Result UnLike */

    echo "<form action='' method='post'>

              <input type='submit' name='unlike' value='Unlike' />

          </form>";


}


查看完整回答
反對(duì) 回復(fù) 2022-10-14
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

沒有人可以幫助你,因?yàn)槲覀兛床坏侥愕?likes結(jié)果,這里是偽代碼,它是如何工作的,在哪里$likes硬編碼為 false 開始(不喜歡),當(dāng)你點(diǎn)擊喜歡時(shí),會(huì)顯示不同按鈕。在你得到這個(gè)之后,你應(yīng)該調(diào)試$likes每個(gè)時(shí)刻包含的內(nèi)容以及為什么它沒有進(jìn)入你的 if 語句:


<?php


/* Check Database */

$likes = false;



/* Check Result */

var_export($likes);


/* If No Result Like */

if (!$likes) {

echo

"<form action='' method='post'>

<input type='submit' name='like' value='Like' />

</form>";


if(isset($_POST['like']))

{

    $likes = true;

}


}


/* If Result UnLike */

if ($likes) {

echo

"<form action='' method='post'>

<input type='submit' name='unlike' value='Unlike' />

</form>";


if(isset($_POST['unlike']))

{

    $likes = false;

}


}


/* Show Results */


查看完整回答
反對(duì) 回復(fù) 2022-10-14
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)