2012-07-17 52 views
0

提交選定選項後,數據不會被存儲。 只是想知道如何驗證失敗後回發數據如果「選擇」驗證失敗,則回傳數據

以下行不真的爲我工作。

<select id="numbers" name="numbers" value="<?php echo (isset($_POST['numbers'])) ? $_POST['numbers'] : " "; ?>"/> 

如果有人能給我一隻手?

非常感謝,這是我的代碼

<?php 

if(isset($_POST['numbers']) &&($_POST['fruits']) && $_POST['numbers'] != "null" && $_POST['fruits'] !== "null") 
{ 
    echo "Thank you!"; 
} elseif (isset($_POST['numbers']) && $_POST['numbers'] = "null") { 
    echo "you forgot to choose a number"; 
    } 
    elseif(isset($_POST['fruits']) && $_POST['fruits'] = "null") 
{ 
    echo "you forgot to choose fruit name"; 
    } 

?> 



    <form id="form" name="form" method="post" action=""> 

     <label for="expiry">Select</label> 
       <select id="numbers" name="numbers" value="<?php echo (isset($_POST['numbers'])) ? $_POST['numbers'] : " "; ?>"/> 
       <option value="null" selected="selected">-</option> 
       <option value="01">01</option> 
       <option value="02">02</option> 
       <option value="03">03</option> 
       </select> 

       <select id="fruits" name="fruits" value="<?php echo (isset($_POST['fruits']))? $_POST['fruits'] : ''; ?>"/> 
       <option value="null" selected="selected">-</option> 
       <option value="Apple">Apple</option> 
       <option value="Banana">Banana</option> 
       <option value="Pear">Pear</option> 

       </select> 

    <input type="submit" value="Send" /> 
    </form> 

解決了這個問題,也許不是一個最好的辦法,但至少得到它排序:

<?php 
$item = null; # 
$itemyear = null; 

if(isset($_POST['numbers'])){ 
$item = $_POST['numbers']; 
} 
if(isset($_POST['fruits'])){ 
$itemyear = $_POST['fruits']; 
} 



if(isset($item) && isset($itemyear) && $item != "null" && $itemyear !== "null") 
{ 
    echo "Thank you!"; 
} elseif ($item == "null") { 
    echo "you forgot to choose a number"; 
    } 
    elseif($itemyear == "null") 
{ 
echo "you forgot to choose fruit name"; 
} 



?> 



    <form id="form" name="form" method="post" action=""> 

     <label for="expiry">Select</label> 
      <select id="numbers" name="numbers" /> 
       <option value="null" selected="selected">-</option> 
       <option value="01" <?php if($item == '01'): echo "selected='selected'"; endif; ?>>01</option> 
       <option value="02" <?php if($item == '02'): echo "selected='selected'"; endif; ?>>02</option> 
       <option value="03" <?php if($item == '03'): echo "selected='selected'"; endif; ?>>03</option> 
       </select> 

       <select id="fruits" name="fruits" /> 
       <option value="null" selected="selected">-</option> 
       <option value="Apple"<?php if($itemyear == 'Apple'): echo "selected='selected'"; endif; ?> >Apple</option> 
       <option value="Banana"<?php if($itemyear == 'Banana'): echo "selected='selected'"; endif; ?>>Banana</option> 
       <option value="Pear"<?php if($itemyear == 'Pear'): echo "selected='selected'"; endif; ?>>Pear</option> 

       </select> 

    <input type="submit" value="Send" /> 
    </form> 


<?php 
echo $item ."-". $itemyear; 
?> 
+0

將用戶重定向回

if(validationFailed) { header("Location: page.php?data=example"); } 

的數據然後可以在page.php文件進行檢索我真的不udnerstand你的意思。它也應該是<?php echo isset($ _ POST ['numbers']); ?>。我不明白你爲什麼想要在值屬性中輸出一個布爾值。 – 2012-07-17 02:46:41

+0

謝謝。一旦提交選定的選項,數據不會被存儲。只是想知道如何驗證失敗 – olo 2012-07-17 04:09:57

回答

0

的PHP isset()函數函數返回true或假(取決於輸入是否爲...好...設置。

你想要使用這個: value='<?php echo (isset($_POST['numbers'])) ? $_POST['numbers'] : ""; ?>

+0

回發數據謝謝,但沒有工作,」/> – olo 2012-07-17 03:53:32

0

您不能在<select>上設置value屬性。您必須找到正確的<option>並設置其selected屬性。就個人而言,我在<select>上放置了data-default屬性,然後使用JavaScript循環選項並找到合適的選項。

+0

感謝Kolink,我有Javascript驗證,只是想學習如何使用PHP來驗證表單。你的答案是有幫助的。 – olo 2012-07-17 04:16:53

+0

我不明白你說「你的回答是有幫助的」,當你明顯不理解我剛纔所說的話時。我沒有提到任何有關JavaScript驗證的內容,我說你可以在選擇中加入一個屬性,並使用JavaScript來找到正確的選項以使其正常工作。 – 2012-07-17 04:18:47

+0

不,我知道你的意思!答案如下所示:「您無法在