2017-05-18 4 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

2つの相互に排他的な条件があります。 'selectOpt'が" one "の場合、数値を入力している場合は数値(' preg_match'条件) –

+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] * $ /" ...を使用した理由を理解していません。 (preg_match( "/^[0-9] * $ /"、$ id)){ .... –

+0

あなたはpreg_matchのインスタンスでuinputをチェックすることができます.. ID –

関連する問題