0

问题是当显示第二个表单时,验证不会按照我需要的方式发生。无论我是否有价值,TextBoxEntry我都会收到消息Saved。理想情况下,如果文本框不为空,那么只有我应该收到消息Saved,但即使我什么都没有,我也会收到消息Saved

有人可以帮忙吗?

谢谢

这是代码:

<?php 
SESSION_start();
include ("../connection/index.php"); 
?>

<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body>
<div id="One">
        <form name="form1" method="post" action="">

        <?php
        $SQLbrands="SELECT * FROM brands";
        $runBrands=mysqli_query($db, $SQLbrands) or die ("SQL Error");
        $noRow=mysqli_num_rows($runBrands);
        $brndTable = "<table border='1' cellspacing='0' cellpadding='1' id='brndTable1' class='brndTable1'>";
        $brndTable .= "<thead><tr><th class='brT11'>Brand Name</th><th class='brT21'>Variant</th><th class='brT31'>SKU</th><th class='brT41'></th></tr></thead>";
        $brndTable .= "<tbody>";
        while ($reK = mysqli_fetch_array($runBrands))
        {
            $wec = $reK['id']; $wec2 = $reK['bvariant']; $wec3 = $reK['bsku'];
            $brndTable .= "<tbody class='colormine'><tr>";
            $brndTable .= "<td class='brT1'>".$reK["name"]."</td>";
            $brndTable .= "<td class='brT2'>".$reK["address"]."</td>";
            $brndTable .= "<td class='brT3'>".$reK["tphone"]."</td>";
            $brndTable .= "<td class='brT4'><input type='checkbox' name='checkedMe[]' value='$wec' /></td>";
            $brndTable .= "</tr>";
        }
        $brndTable .= "</tbody>";
        $brndTable .= "</table>";


        echo $brndTable;
        ?>  

        <input type="submit" name="sendone" id="sendone" value="OneClick">
        </form>
</div>

<div id="two">
        <?php

            if(isset($_POST['sendone']))
            {   if(!isset($_POST['checkedMe']))
                {echo 'No check boxes are selected!'; return;} else 
                {
                $mohan = "<form method='post' action=''><table border='1' id='myTad'  cellspacing='0' cellpadding='2'>
                    <tr class='tabColor'>
                    <td>Name</td>
                    <td>Address</td>
                    <td>Phone</td>
                    </tr>";
                foreach($_POST['checkedMe'] as $checkedMe)
                            {
                                $checkedMe=mysqli_real_escape_string($db,$checkedMe);
                                $QR = "SELECT bname, bvariant, bsku FROM brands WHERE id='$checkedMe'";
                                $rr = mysqli_query($db,$QR) or die ("SQL Error");
                                $roV = mysqli_num_rows($rr);
                                $rr = $rr->fetch_assoc();

                                $mohan .= "<tr class='sc_eght' ><td class='sc_five'>".$rr['bname']." ".$rr['bvariant']." ".$rr['bsku'];
                                $mohan .="</td>
                                   <td><textarea  style='width:80px;' name='schema[]' id='vtext' class='sc_one' rows='1' cols='1' maxlength='100'></textarea></td>
                                   <td><input  style='width:80px;' type='text' name='TextBoxEntry[]' id='vtext' class='sc_two' size='80' maxlength='5'></td>
                                   </tr>";

                            }
                                $mohan .= "<input type='submit' name='sendMe' id='sendMe' value='Save'></table></form>";
                                $_SESSION['cb'] = $mohan; }

                                if(isset($_SESSION['cb'])) 
                                echo $_SESSION['cb']; 
            }   


        if(isset($_POST['sendMe']))
        {
            if(!(isset($_POST['TextBoxEntry']) || $_POST['TextBoxEntry'] == ''))
            {echo $_SESSION['cb']; echo "Empty!"; return;} else  { echo $_SESSION['cb']; echo "Saved!"; return;}
        }

            ?>
</div>
</body>
</html> 
4

4 回答 4

0

Try

    if(empty($_POST['TextBoxEntry']))
    {
      echo $_SESSION['cb']; 
      echo "Empty!";
    } else  { 
      echo $_SESSION['cb']; 
      echo "Saved!";
    }

I just realized that 'TextBoxEntry' is an Array. Hope it Helps.

Cheers!!

于 2013-06-28T08:41:49.210 回答
0

if(!(isset($_POST['TextBoxEntry']) || $_POST['TextBoxEntry'] == '')) is equal to if(!isset($_POST['TextBoxEntry'] && $_POST['TextBoxEntry'] != '') but you need to change it to

if(!isset($_POST['TextBoxEntry'] || $_POST['TextBoxEntry'] == '')

other thing is I don't think you need return statement in your code.

于 2013-06-28T08:42:19.987 回答
0

而不是这行代码

if(!(isset($_POST['TextBoxEntry']) || $_POST['TextBoxEntry'] == ''))

你应该有这个

if( (!(isset($_POST['TextBoxEntry'])) || $_POST['TextBoxEntry'] == ''))

因为当你拥有你的代码时,程序会否定所有条件。所以你需要另一个 () 来保留第一部分的否定。

试试这个东西。希望它有效!

于 2013-06-28T09:18:00.063 回答
0

改变if(!(isset($_POST['TextBoxEntry']) || $_POST['TextBoxEntry'] == ''))

if( !isset($_POST['TextBoxEntry']) || $_POST['TextBoxEntry'] == '')

于 2013-06-28T08:35:11.537 回答