簡體   English   中英

提交按鈕已被點擊

[英]Submit button already clicked

我有一個要提交的表單,並且檢查是否有文本框包含文本,以便可以更新數據庫中的內容。

這是表格的代碼:

 <form action="" method="POST"/> CNP Nou: <input type="text" name="cnpN"/><br/> Nume Nou: <input type="text" name="numeN"/><br/> Prenume Nou: <input type="text" name="prenN"/><br/> Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/> Sex Nou: <input type="text" name="sexN"/> F sau M <br/> Numar Telefon Nou: <input type="text" name="telN"/><br/> Adresa Noua: <input type="text" name="adrN"/><br/> E-mail Nou: <input type="text" name="mailN"/><br/> <input type="submit" value="Modifica" name="search2" class="submit" /> </form> 

然后,我檢查是否單擊了按鈕,以便查看是否有任何文本框已編寫文本以便在數據庫中進行更新:

if (isset($_POST["search2"])) 
{
    if (!empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) || !empty($_POST['dataNN']) || !empty($_POST['sexN']) || !empty($_POST['telN']) || !empty($_POST['adrN']) || !empty($_POST['mailN'])) 
    {
        //php code for update
    }
}
else
{
    echo "<h4><b> Eroare! </b><h4>";
}

問題在於,如果不單擊按鈕,我將看到“ Eroare!” 信息。 如果刪除了else語句,然后單擊按鈕,則即使對表單進行了介紹,數據庫也不會發生任何變化。

我使用else語句只是為了看看是否可能是問題所在。

我正在看代碼一段時間,看不到問題所在。 我知道可以使用更簡單的方法來檢查已完成的文本框,但是我是php的新手,所以我認為這種方法更容易。

else子句屬於if非空條件。

首次加載php腳本時,不存在POST數據。 這是預期的,因為它是GET請求。 這就是為什么初始條件為false並顯示錯誤消息的原因。 POST絕不會在HTTP GET請求上設置。

您的代碼運行正常,輸出顯示出來,因為在開始時未提交“表單”,而未提交“如果”,則“ else”應該起作用而“ else”正在起作用。 如果您不希望顯示它,則可以將else刪除。它會正常工作,也請盡量不要盡早結束表單標簽

代替

<form action="" method="POST"/>

用這個

<form action="" method="POST">     `

尚未單擊“提交”按鈕,但是您的代碼正在輸出“ Eroare”,因為最初,您沒有設置頁面加載時的任何發布數據,包括search2 因此,除非標記為發生了錯誤,否則不需要else條件if(isset($_POST["search2"])){} ,而是在if(isset($_POST["search2"])){}塊內。 否則,它將始終輸出“ Eroare”。

您首先需要驗證表單數據,然后在任何表單數據不滿足條件的情況下引發錯誤。

關於驗證過程,您可能需要實現一些現有的驗證庫,或者需要擴展條件以檢查特定數據,特定驗證要求。

其中一些將是必需的(不為空),其中一些將需要列表中的約束/有限值(例如“性別”字段),一些將需要數字值驗證(電話),電子郵件字段將需要電子郵件值驗證。

另外,您缺少用於數據庫插入的部分。

沒有高級驗證的簡化代碼將如下所示:

  <?php

$post_search2 = filter_input(INPUT_POST,'search2'); //filter_input returns empty if input not set, and it is useful to filter and validate specific values;
if(!empty($post_search2))
{

    $form_values = array('cnpN', 'numeN', 'prenN', 'dataNN', 'sexNN', 'telN', 'adrN', 'mailN'); //I have placed it in array to avoid having large code and simplify checks through iteration

    $parsed_data = array();
    foreach($form_values as $form_value){
        $value = filter_input(INPUT_POST, $form_value);
        if(!empty($value)){ //update parsed data only if form data is not empty
            $parsed_data[$form_value] = $value;
        }

    }
    //so if any of data is filled, do the updates
    //this actually does same as  !empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) && ... 
    //  if you would require all data filled, check if count($parsed_data) === count($form_values) and that actually does same as this actually does same as  !empty($_POST['cnpN']) && !empty($_POST['numeN']) &&  !empty($_POST['prenN']) && ...
    //
    if(count($parsed_data) > 0){
        //php code for update

    }else{
        echo "<h4><b> Eroare! </b><h4>";
    }


}

?>

<form action="" method="POST">
CNP Nou: <input type="text" name="cnpN"/><br/>
Nume Nou: <input type="text" name="numeN"/><br/>
Prenume Nou: <input type="text" name="prenN"/><br/>
Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/>
Sex Nou: <input type="text" name="sexN"/> F sau M <br/>
Numar Telefon Nou: <input type="text" name="telN"/><br/>
Adresa Noua: <input type="text" name="adrN"/><br/>
E-mail Nou: <input type="text" name="mailN"/><br/>
<input type="submit" value="Modifica" name="search2" class="submit" />
</form>

只需從表單標簽中刪除關閉標簽

即,將<form action="" method="POST"/>更改為<form action="" method="POST">

如果仍不能解決您的問題,請使用以下代碼段,

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">          
CNP Nou: <input type="text" name="cnpN"/><br/> 
Nume Nou: <input type="text" name="numeN"/><br/> 
Prenume Nou: <input type="text" name="prenN"/><br/> 
Data Nasterii Noua: <input type="text" name="dataNN"/> De forma AAAA-ZZ-LL <br/> 
Sex Nou: <input type="text" name="sexN"/> F sau M <br/> 
Numar Telefon Nou: <input type="text" name="telN"/><br/> 
Adresa Noua: <input type="text" name="adrN"/><br/> 
E-mail Nou: <input type="text" name="mailN"/><br/> 
<input type="submit" value="Modifica" name="search2" class="submit" /> 
</form>

PHP代碼

if(isset($_POST["search2"]))  
      if(!empty($_POST['cnpN']) || !empty($_POST['numeN']) || !empty($_POST['prenN']) || !empty($_POST['dataNN']) || !empty($_POST['sexN']) || !empty($_POST['telN']) || !empty($_POST['adrN']) || !empty($_POST['mailN']))
      {
             //php code for update
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM