选择输入不适用于文本框

时间:2015-12-05 01:29:54

标签: php html

当我填写此表单并提交值时,没有任何反应,但是当我一次只传递一个值时,值得通过,那么我做错了什么。

HTML:

<form action="" method="post">
<label for="kafli">Kafli:</label>
<select name="kafli" id="kafli">
    <option value=""></option>
    <option value="11">1.1</option>
    <option value="12">1.2</option>
    <option value="13">1.3</option>
    <option value="14">1.4</option>
    <option value="15">1.5</option>
    <option value="16">1.6</option>
</select>

<label for="html">HTML:</label>
<textarea name="html" id="html"></textarea>

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

PHP

if(isset($_POST['html'])) { 
    echo 'HTML is OK'; 
    if(isset($_POST['kafli'])) {
        echo 'Kafli is OK'; 
    } 
 }

1 个答案:

答案 0 :(得分:1)

如果您想同时回应这两个条件以确保它们不为空,请使用empty()而不是isset()

使用<select><textarea>已假设它们已“设置”。您希望使用的是更好的方法,是条件empty()

if(isset($_POST['submit'])){
    if(!empty($_POST['html'])) { 
        echo 'HTML is OK'; 
        if(!empty($_POST['kafli'])) {
            echo 'Kafli is OK'; 
        } 
     }

    else{
    echo "one or all are empty";
    }

} // brace for submit

在命名提交按钮时:(对于我在第一个示例中添加的添加的条件语句)

<input type="submit" name="submit" value="Deila">

或者,使用&& - AND运算符对两者使用条件语句:

即:

if(!empty($_POST['html']) && !empty($_POST['kafli'])) {
    echo 'Both are filled.'; 

    } 

    else{
        echo "One or both were not filled";
    }

或者,使用OR - ||运算符

if(!empty($_POST['html']) || !empty($_POST['kafli'])) {
echo "One was filled, but not the other";
    } 

参考文献: