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

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

PHP提交的兩個(gè)HTML表單互相觸發(fā)

PHP提交的兩個(gè)HTML表單互相觸發(fā)

慕標(biāo)琳琳 2023-10-24 21:14:56
我在一頁上有 2 個(gè)表格,但是當(dāng)我按下“提交”按鈕時(shí),另一個(gè)表格就會(huì)被執(zhí)行。<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">  Name: <input type="text" name="fname">  <input type="submit" name="getNameSubmit"></form><?phpif ($_SERVER["REQUEST_METHOD"] == "POST") {    // collect value of input field    if(isset($_REQUEST['fname']) && $_REQUEST['fname']!="")        {            $name = htmlspecialchars($_REQUEST['fname']);              if (empty($name)) {                echo "Hello dear user.";            } else {                echo "Hello $name";            }    }}?>和<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">  Full text: <input type="text" name="stringtoreplace" value="">  Word(s) to change: <input type="text" name="wordstochange" value="">  Change to: <input type="text" name="wordstoinput" value="">  <input type="submit" name="wordReplaceSubmit"></form><?phpif ($_SERVER["REQUEST_METHOD"] == "POST") {    // collect value of input field -- the if(isset) stops a pre-comparison that throws an E_NOTICE level error    if(isset($_REQUEST['stringtoreplace']) && $_REQUEST['stringtoreplace']!="")    {     $stringoutput = htmlspecialchars($_REQUEST['stringtoreplace']);    }    if(isset($_REQUEST['wordstochange']) && $_REQUEST['wordstochange']!="")    {     $tochange = htmlspecialchars($_REQUEST['wordstochange']);    }    if(isset($_REQUEST['wordstoinput']) && $_REQUEST['wordstoinput']!="")    {     $changeto = htmlspecialchars($_REQUEST['wordstoinput']);    }    if (empty($stringoutput)) {        echo "Please enter your text and the words to change.";    } else {        echo str_replace($tochange, $changeto, $stringoutput);    }}?> 如何在不觸發(fā)另一個(gè)的情況下讓其中之一采取行動(dòng)?功能和位置不是這里的一個(gè)因素,我只是在做一些練習(xí),但如果能了解為什么會(huì)發(fā)生這種情況以及如何解決,那就太好了。
查看完整描述

2 回答

?
一只名叫tom的貓

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

<?php echo $_SERVER['PHP_SELF'];?>給出當(dāng)前的 URL,因此因?yàn)樗鼈兾挥谕豁撁妫詴?huì)導(dǎo)致問題。您可以通過檢查頁面Ctrl + Shift + i然后單擊ElementsChrome 來檢查這一點(diǎn)。


一種解決方案可能是為兩個(gè)表單提供不同的 URL 或在發(fā)布請求上使用參數(shù)。例如<?php echo $_SERVER['PHP_SELF'].'?form=form1';?>-&<?php echo $_SERVER['PHP_SELF'].'?form=form2';?>


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if(isset($_GET['form'])){

        if($_GET['form'] == 'form1'){

            //code for form1

        }else{

            //code for form2

        }

    }

}


查看完整回答
反對 回復(fù) 2023-10-24
?
胡子哥哥

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

好吧,讓我們開始討論為什么會(huì)發(fā)生這種情況。


HTML 的參數(shù)action告訴瀏覽器使用表單數(shù)據(jù)發(fā)送 POST 請求的 URL。在您的例子中,它是$_SERVER['PHP_SELF'],這是當(dāng)前的 PHP 腳本。您對這兩種形式使用相同的內(nèi)容。


當(dāng)提交其中一份表單時(shí),您的 PHP 腳本將被調(diào)用,并且腳本中的所有 PHP 都會(huì)被執(zhí)行。第一部分(第一個(gè)表單之后的部分)檢查if ($_SERVER["REQUEST_METHOD"] == "POST"),確定這是一個(gè) POST 請求,并嘗試?yán)^續(xù)。之后,第二部分(第二個(gè)表單之后的部分)使用完全相同的檢查,確定是的,這是一個(gè) POST 請求,并嘗試?yán)^續(xù)進(jìn)行。


理想情況下,使用兩個(gè)不同的頁面來處理兩種不同的表單會(huì)更干凈;但如果您希望將所有內(nèi)容保留在同一頁面中,則可以使用幾個(gè)不同的選項(xiàng)來區(qū)分兩者。


1) 按照@sauhardnc 的建議,在每個(gè)表單的操作屬性中使用不同的查詢參數(shù)。表格看起來像:


<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>?form=form1">

...

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>?form=form2">

而 PHP 端會(huì)做類似的事情


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if ($_GET['form'] == 'form1') {

        // code for form1

    } else {

        // code for form2

    }

}

2) 在每個(gè)表單中使用不同的輸入。表格看起來像:


<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    ...

    <input type="hidden" name="form" value="form1">

</form>

...

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    ...

    <input type="hidden" name="form" value="form2">

</form>

而 PHP 端會(huì)做類似的事情


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if ($_REQUEST['form'] == 'form1') {

        // code for form1

    } else {

        // code for form2

    }

}


查看完整回答
反對 回復(fù) 2023-10-24
  • 2 回答
  • 0 關(guān)注
  • 204 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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