2013-06-26 42 views
-1

文本框中領域,您好我試圖在較早的筆記中找到答案我的以下問題也不過便無法。 可以有一個人請不要突出我在哪裏出了錯?驗證動態填充在PHP

我的問題是,當點擊Save按鈕,不論文本框是否有一個值或空,它總是打印保存的信息!只是它不驗證文本框的值。

還要注意的文本框通過循環填充。

謝謝。

<?php 
SESSION_start(); 
if(!isset($_SESSION['userLogin'])) 
{ 
header('Location:../2-lo'); 
} 


include ("../connection/index.php"); 

?> 
<?php 
    function putForm2(){ 
    $myForm = "<form name='form2' method='post' action=''><table border='1'><tr><td>form 2 is here!<br></td></tr><tr><td><input type='text' name='txt123' id='txt123'></td></tr> <tr><td><input type='submit' name='sendtwo' id='sendtwo' value='TwoClick'></td></tr></table></form>"; 
    return $myForm; 
    } 
?> 
<!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["bname"]."</td>"; 
    $brndTable .= "<td class='brT2'>".$reK["bvariant"]."</td>"; 
    $brndTable .= "<td class='brT3'>".$reK["bsku"]."</td>"; 
    $brndTable .= "<td class='brT4'><input type='checkbox' name='delz[]' 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['delz'])) 
       {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>Brands</td> 
        <td>Scheme</td> 
        <td>Allocation</td> 
        <td>Focus Channels</td> 
        <td>Focus Provinces</td> 
        </tr>"; 
       foreach($_POST['delz'] as $delz) 
          { 
           $delz=mysqli_real_escape_string($db,$delz); 
           $QR = "SELECT bname, bvariant, bsku FROM brands WHERE id='$delz'"; 
           $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='allocas[]' id='vtext' class='sc_two' size='80' maxlength='5'></td> 
            <td><input style='width:80px;' type='text' name='channelz[]' id='vtext' class='sc_three' size='120' maxlength='30'></td> 
            <td><input style='width:80px;' type='text' name='provinz[]' id='vtext' class='sc_four' size='120' maxlength='30'></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($_POST['provinz'] == "") 
    {echo $_SESSION['cb']; echo "Province is empty!"; return;} else { echo $_SESSION['cb']; echo "Saved!"; return;} 

    if(!isset($_POST['allocas']) || $_POST['allocas'] == '') 
    {echo $_SESSION['cb']; echo "Allocation is empty!"; return;} else { echo $_SESSION['cb']; echo "Saved!"; return;} 

} 

      ?> 

     </div> 
    </body> 
</html> 
+0

一個建議,HTML,PHP搭配是非常混亂的,它的更好,如果代碼被分離PHP和HTML,所以它更容易理解和調試的。 –

+0

重複[動態文本框的值不會捕獲驗證 - PHP](http://stackoverflow.com/questions/17280029/dynamic-text-box-value-doesnt-capture-in-validation-php) – CBroe

+0

@ CBroe是否在這裏閱讀我的問題? –

回答

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

很可能是你的問題行。如果allocas未設置或設置爲空,這將返回true。

你的意思也許是啥子:

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

這將返回true只有allocas包含文本。

+0

沒有隊友!仍然不起作用! –