2016-12-20 25 views
0

フォームと送信ボタンを使用してデータベースに値を挿入したいのですが、ユーザーが送信ボタンをクリックすると、 (ドロップダウンやチェックボックスからの値)ユーザーが選択した値を更新することにより、完全に実行されます。しかし、if(isset($_POST['btnSave']))ではなく、内側のループの場合のvar_dump($_POST)で表示したこと。

<?php 
    $varUsrGrpID = isset($_REQUEST["dduser"])?$_REQUEST["dduser"]:""; 
    $varAction = isset($_REQUEST["action"])?$_REQUEST["action"]:""; 

    if ($varAction == "savedata") 
    { 
     if(isset($_POST['btnSave'])) 
     { 
      $checkBox = implode(',', $_POST['namaMenu']); 

      if(strlen($checkBox)>=0) 
      { 

       foreach($_POST['namaMenu'] as $checkBox) 
       { 
         $strConvert = "select CAST ('Y' as char) as eg"; 
         $rsconvert = odbc_exec($dbconnVOT,$strConvert); 

         if (odbc_fetch_row($rsconvert)) 
         { 
          $convertID = odbc_result($rsconvert, "eg"); 
         } 
         else 
         { 
          exit(); 
         } 


         $strInsertData = "insert into tblMenuAkses 
          (usrgrpid, menuid, menuakses) 
          values 
          (".checknull($GLOBALS["varUsrGrpID"]).",'$checkBox', 
          $convertID)"; 


         $rsInsert = odbc_exec($dbconnVOT,$strInsertData); 

         if(!$rsInsert) 
         { 
          writeErr($strInsertData,odbc_errormsg(),'skrinMenu.php',$ErrFilePath); 
          $msg = "error"; 
         } 
         else 
         { 
          $msg = "Success"; 
         } 

       } 
      } 

     } 
     else 
     { 
      var_dump($_POST); 
     } 

    } 

    ?> 

    <script> 

function sendData(varActionSed) 
{ 

    if(document.getElementById("dduser").value=="") 
    { 
     alert("Please choose 'dduser'"); 
     document.getElementById("dduser").focus(); 
     return false; 
    } 


    document.getElementById("action").value=varActionSed; 
    document.getElementById("frm1").submit(); 

} 

</script> 
<form name="frm1" id="frm1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" enctype="multipart/form-data"> 
<input type="hidden" name="action" id="action" value=""> 
<table align= "center" border="0" cellspacing="0" cellpadding="2"> 
    <tr>&nbsp;</tr> 
    <tr> 
      <td width="170" height="20:px" valign="top"><b>User<font style="color:#ff0000">*</font></b></td> 
      <td valign="top" align="center" width="15:px"><b>:</b></td> 
      <td valign="top"> 

    <?php 
    echo "<select name=\"dduser\" id=\"dduser\">"; 
    echo "<option value=\"\">Please choose</option>"; 
    $sqlGetUsrGrp = "SELECT * FROM tblUsrGrp"; 
    $rs = odbc_exec($dbconnVOT,$sqlGetUsrGrp); 

    if ($rs) 
    { 
     while(odbc_fetch_row($rs)) 
     { 
      echo "<option value=\"".odbc_result($rs,"UsrGrpID")."\" ".($varUsrGrpID==odbc_result($rs,"UsrGrpID")?"selected":"").">".odbc_result($rs,"UsrGrpNama")."</option>"; 
     } 
    } 
    else 
    { 
     echo "error - ".odbc_errormsg(); 
    } 
    echo "</select>"; 
    ?> 


      </td> 

    </tr> 

     <?php 

     $varMenuIDSumm=""; 
     $strMenuID="select * from tblMenuAkses"; 
     $rsMenuID=odbc_exec($dbconnVOT, $strMenuID); 
     $countMenuID=0; 
     while(odbc_fetch_row($rsMenuID)) 
     { 
      $countMenuID++; 
      if($countMenuID==1) 
      { 
       $varMenuIDSumm=odbc_result($rsMenuID,"MenuID"); 
      } 
      else 
      { 
       $varMenuIDSumm.=",".odbc_result($rsMenuID,"MenuID"); 
      } 
     } 


     $menuID=array(); 
     $menuID=implode(",",$varMenuID); 
     $strGetMenu="select * from tblMenu where MenuNama != 'sokong' and menunama not in ('Daftar Lejer Mengikut Dana')"; 

     $rs=odbc_exec($dbconnVOT, $strGetMenu); 
     if($rs) 
     { 
      while (odbc_fetch_row($rs)) 
      { 
       echo '<tr><td>'; 
       echo '<input type="checkbox" name="namaMenu[]" id="namaMenu" value='.odbc_result($rs,"menuID").'><b>&nbsp;'.odbc_result($rs,"MenuNama").'</b>' ; 
       echo '</td></tr>'; 

      } 

     } 

     ?> 

<tr> 
    <center> 
     <input type="button" name="btnSave" id="btnSave" onClick="javascript:sendData('savedata');" value = "submit"> 
    </center> 
</tr> 

</table> 
</form> 

すべてのヘルプははるかに高く評価されます。TQ

+0

'var_dump'の結果を追加できますか?おそらく 'save'などに設定されていない' action'です。 –

+0

@ rap-2-h var dump結果: 'array(3){[" action "] => string(8)" savedata "[" ddKumpPenguna "] =>文字列(1)" 4 "[" namaMenu "] => array(1){[0] => string(1) "4"}} '、それは' var_dump'の結果です。結果は、コードに何も問題がないようです。私は何が間違っているのか分からず、なぜ私のコードがデータベースの値を更新しないのですか – Diyana

答えて

0

送信のための名前と値を持つHTMLコードをご確認ください。

<input type='submit' name = 'btnSave' value = 'btnSave' /> 
+0

ありがとうございます、しかし、私はすでにそれを試しました。しかし、それはどちらもうまくいかない。 – Diyana

関連する問題