通过PHP中的foreach进行验证

时间:2013-07-23 17:42:53

标签: php

嗨,有人可以帮我解决以下问题。每当检测到空白或非空白文本框时,每次Empty!Full!都会打印。

我需要的是以下内容;

  1. 在一系列文本框(在数组中)中,即使只有一个文本被检测到空白,只需回显Empty! ONLY ONCE ,而不是每次都有空白文本框。< / p>

  2. 如果所有文本框都是非空白的,则仅回显Full! ONCE!

  3. 您如何建议我更改以下内容?谢谢。

    if(isset($_POST['Save']))
    {
        if(is_array($_POST['name']))
        {
        foreach($_POST['name'] as $Value)
            {if($Value == '')
                {
                echo "<table border='1'><tr><td>Response</td></tr></table>";
                echo "Empty!";
                } 
                else 
                {
                echo "<table border='1'><tr><td>Response</td></tr></table>";
                echo "Full";
                }
            }
        }
    }
    

    修改

    echo "<td><input style='width:60px' type='text' name='name[]' id='vtext' class='sc_two'     size='80' maxlength='5'></td>
    

    然后在验证码中我有以下内容;

    if(isset($_POST['Save']))
    {
        if($_POST['name']=='')
        {
        echo "<table border='1'><tr><td>Responses</td></tr></table>";
        echo "Empty";} 
        else 
        {
        echo "<table border='1'><tr><td>Responses</td></tr></table>";
        echo "Saved!";}
    }
    

3 个答案:

答案 0 :(得分:1)

if(isset($_POST['Save'])) {
    if(is_array($_POST['name'])) {

        $result = 'Full!'; // Result defaults to 'Full!'

        // But if we find an empty value we change it to 'Empty!'
        foreach($_POST['name'] as $value){
            if($value === ''){
                $result = 'Empty!';
                break;
            }
        }

        // Output the response
?>
        <table border="1"><tr><td>Response</td></tr></table>
        <?=$result?>
<?php
    }
}

答案 1 :(得分:0)

if(isset($_POST['Save']))
{
    if(is_array($_POST['name']))
    {
     $full = 0;
    foreach($_POST['name'] as $Value){
        if($Value == '')
            {
            $full = ++;
            } 
        }
    }
    echo "<table border='1'><tr><td>Response</td></tr></table>";
    echo $full == 0 ? "Full" : "Empty" //Shorthand if notation
}

您必须运行检查,然后在循环外输出响应。

答案 2 :(得分:0)

您不需要循环,使用array_search来判断数组中是否有空元素。

if (array_search('', $_POST['name'])) {
  $result = 'Empty!';
} else {
  $result = 'Full!';
}
echo '<table border="1"><tr><td>Response</td></tr></table>';
echo $result;