2013-06-24 61 views
0

如果下面的代碼有點冗長但是我想我不得不爲了看到該功能而首先表示歉意。動態文本框的值不會在驗證中捕獲 - PHP

我的問題是當單擊按鈕Save時,不管文本框是否有值或爲空,它始終打印消息Saved!。只是它不驗證文本框的值。有人可以告訴我,我在哪裏錯了。謝謝。

<?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

我看到小東西丟失:

你忘了串聯這裏的變量: <input type='checkbox' name='delz[]' value='$wec' >

應該

`<input type='checkbox' name='delz[]' value='".$wec."' />` 

`<input type='checkbox' name='delz[]' value='{$wec}' />` 
+0

感謝職位。但是,我得到這個..解析錯誤:語法錯誤,意想不到的'['在C:\ xampp \ htdocs \ docs \ add_invoice \ testmm.php 54行 –

+0

while while循環中的一件事,檢查答案 – Sergio

+0

嘗試然後<輸入type ='checkbox'name ='delz []'value ='{$ wec}'/> – Sergio

0

採用javascript

function validation() 
{ 
var chks = document.getElementsByName('delz[]');//here delz[] is the name of the textbox 

    for (var i = 0; i < chks.length; i++) 
    {  
    if (chks[i].value=="") 
    { 
    alert("Please fillup atleast one textbox"); 
    chks[i].focus(); 
    return false;   
    } 
    } 

}

+0

不認爲我可以使用JS,因爲這發生在PHP內部。 –