你能否在选择选项列表中设置$ _POST值?

时间:2012-06-27 04:12:51

标签: php validation isset

所以我有一个包含值的选择选项列表。但与大多数选择选项列表一样,第一个选项列出了用户的虚拟文本。问题是当$ _POST变量被携带时,isset值为true,但是有没有办法使它成为假?这只是一个例子。即使尝试使用虚拟文本,底部也总是如此。令人沮丧或者我做错了吗?顺便说一下,这只是示例代码

<?php
if(isset($_POST['curreny_pairs'])):
    echo "true";
endif;
?>
<html>
    <form action="blah" method="post">
        <select name="currency_pairs" id="currency_pairs">
             <option selected="selected">Currency Pair</option>
             <option value="AUDCAD" >AUD/CAD</option>
             <option value="AUDCHF" >AUD/CHF</option>
        </select>    
        <input type="submit" value="submit">
    </form>
 </html>

2 个答案:

答案 0 :(得分:2)

双向

1)为第一个选项

设置 value =“0”
 <option selected="selected" value="0">Currency Pair</option>

并使用empty()检查,而不是 isset(),因为

  

empty()为“0”

返回 false

2)使用disabled属性作为第一个选项

<option selected="selected" disabled="disabled" >Currency Pair</option>

然后您可以查看isset()

<?php
if(!empty($_POST['curreny_pairs'])):
 echo "true";
endif;
?>

<html>
<form action="blah" method="post">
<select name="currency_pairs" id="currency_pairs">
<option selected="selected" value="0">Currency Pair</option>
<option value="AUDCAD" >AUD/CAD</option>
<option value="AUDCHF" >AUD/CHF</option>
</select>

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

答案 1 :(得分:0)

您可以在表格第一个选项中设置特定值,然后确保未选中

<?php
    if(isset($_POST['curreny_pairs']) && $_POST['curreny_pairs']!="false")
     echo "true";
    endif;
    ?>
    <html>
    <form action="blah" method="post">
    <select name="currency_pairs" id="currency_pairs">
    <option value="false" selected="selected">Currency Pair</option>
    <option value="AUDCAD" >AUD/CAD</option>
    <option value="AUDCHF" >AUD/CHF</option>
    </select>

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