2017-05-18 121 views
-2

我試圖根據SELECT框和用戶輸入(兩者都是必需的)進行搜索選項。但是在下面的代碼中,正確和錯誤的輸入都顯示爲錯誤的輸入。有人可以解釋代碼中的錯誤嗎?在PHP中顯示正確的輸出問題

這裏是HTML

<form action="" method="POST"> 
<select name="selectOpt"> 
        <option>Select a list</option> 
        <option value="one">ID</option> 
        <option value="delName">Dealer Name</option> 
        <option value="medName">Medical Name</option> 

      </select> 
<input type="text" name="uinput" placeholder="Enter Search Key"/> 

      <button type="submit" name="submit">search</button> 
</form> 

PHP

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

    if(!empty($_POST['selectOpt']) && !empty($_POST['uinput'])){ 


     if($_POST['selectOpt']=='one'){ 
      $id = $_POST['selectOpt']; 

      if (!preg_match("/^[0-9]*$/",$id)){ 
       echo "not valid"; 

      }else{ 
       echo "valid"; 
      } 
     } 
    }else{ 
     echo "Enter Value"; 
    } 



} 
+0

你會得到什麼輸出結果,你輸入的是什麼? – chris85

+0

你有兩個互斥的條件。如果'selectOpt'等於「one」,那麼它不能是一個數字('preg_match' condtion) –

+0

如果我輸入一個數值,那麼它也顯示爲錯誤的輸入(應該是正確的) – phpLover

回答

0

你的模式​​,被寫入到需要的零個或多個數字序列,不匹配任何可能的值,爲您的選擇框,它們都是字母串。

0
<form action="save.php" method="POST"> 
<select name="selectOpt"> 
        <option>Select a list</option> 
        <option value="one">ID</option> 
        <option value="delName">Dealer Name</option> 
        <option value="medName">Medical Name</option> 

      </select> 
<input type="text" name="uinput" placeholder="Enter Search Key"/> 

      <button type="submit" name="submit">search</button> 
</form> 

<?php 

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

    if(!empty($_POST['selectOpt']) && !empty($_POST['uinput'])){ 


     if($_POST['selectOpt'] == "one"){ 

      $id = $_POST['selectOpt']; 


      if (preg_match("/^[0-9]*$/",$id)){ 

       echo "not valid"; 

      }else{ 
       echo "valid"; 

        echo $input = $_POST['uinput']; 
      } 
     } 
     else{ 

      echo "PLEASE Enter Proper and Valid Search "; 

     } 

    } 
    else{ 
     echo "PLEASE Enter Value "; 
     } 



} 

?> 
+0

我不明白你爲什麼使用preg_match(「/^[0-9] * $ /」...這個..如果你從選項中選擇一個值.. dropdown ...那你爲什麼檢查再次...我想你不需要檢查是否(preg_match(「/^[0-9] * $ /」,$ id)){ .... –

+0

您可以檢查preg_match實例中的uinput .. 。 ID –