选择输入不';t使用文本框


Select Input Doesn't Work With Textbox

当我填写此表单并提交值时,什么都不会发生,但当我一次只传递一个值时,值就会通过,那么我做错了什么呢。

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'; 
    } 
 }

如果要同时回显这两个条件以确保它们不为空,请使用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";
    } 

参考文献:

  • http://php.net/manual/en/function.empty.php
  • http://php.net/manual/en/language.operators.logical.php