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;
?>
4

3 回答 3

0

您不能value<select>. 您必须找到正确的<option>并设置其selected属性。就个人而言,我在 上放置了一个data-default属性<select>,然后使用 JavaScript 循环遍历选项并找到正确的选项。

于 2012-07-17T04:14:06.100 回答
0

哦,现在我明白了。

我不知道通常的做法是什么,但一种方法是在将用户重定向回来时将所有数据作为查询字符串。它不留在 $_POST 全局中的原因是因为它只保留在您发布到的页面上,然后它就消失了。

因此,当您将用户重定向回来时

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

然后可以使用 page.php 在 page.php 中检索数据

$data = $_GET['data']; // contains "example"
于 2012-07-17T13:11:20.620 回答
0

PHP isset() 函数返回 true 或 false(取决于输入是否......以及......设置。

你会想用这个: value='<?php echo (isset($_POST['numbers'])) ? $_POST['numbers'] : ""; ?>

于 2012-07-17T02:56:18.047 回答