2012-07-17 94 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

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