0

所以我有一个包含值的选择选项列表。但与大多数选择选项一样,第一个选项列出了用户的虚拟文本。问题是,当 $_POST 变量被传递到 isset 值时为真,但有没有办法让它为假?这里只是一个例子。即使尝试使用虚拟文本,底部也始终回显真实。令人沮丧还是我做错了?顺便说一句,这只是示例代码

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

2 回答 2

2

两种方式

1)为第一个选项设置value="0"

 <option selected="selected" value="0">Currency Pair</option>

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

empty()为“0”返回

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>
于 2012-06-27T04:29:32.020 回答
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>
于 2012-06-27T04:21:17.837 回答