2016-03-07 55 views
0

當我嘗試使用複選框更新數據庫中的字段時,我遇到了問題,如果checkbox已檢查,我在按下按鈕更新後遇到問題 。php:不能通過複選框的多項選擇來更新數據庫(PDO)中的字段

輸出程序不起作用

<td><input type="checkbox" name="id1<?php echo $data['id'];?>" value="id1<?php echo $data['id'];?>" ></td>; 

更新代碼:

<?php 
foreach($result as $data) { // display all data in table before we updated 
    <td><input type="checkbox" name="id1<?php echo $data['id'];?>" value="id1<?php echo $data['id'];?>" ></td>; 

    $update = "UPDATE identitas SET status='1' WHERE nama=".$data["id"]; 
    // if button update clicke 
    if(isset($_POST['update'])){ 
    // if checkbox is checked 
     if(isset($_POST['id1'])) { 
      if($conn->exec($update)===TRUE){ 
       echo "success update"; 
      }else{ 
       echo "failed Update" . $conn->errorInfo(); 
      } 
     } 
    } 
} 
?> 
//other codes 

當複選框被選中,我將更新字段status從0數據庫爲1

我上面的代碼不起作用,我用PDO

回答

0

我在下面引用的兩行代碼不相互兼容。

例如,如果$ data ['id']包含值3,那麼複選框的名稱將是'id13',而您檢查名爲'id1'的POST變量。

if(isset($_POST['id1'])) { 

name="id1<?php echo $data['id'];?>" 
+0

爲了一句話我應該檢查'如果(isset( $ _ POST [ID1 ['ID]))'?對不起,對於傻瓜的例子,我已經嘗試了很多方法來使這個程序運行良好,這讓我很困惑 – red

+0

我認爲你應該分開這兩個值。名稱爲id,值爲data ['id']。那麼你只需要檢查POST變量$ _POST ['id'] – Johan

+0

你是這麼說的:'「>'然後我檢查'if(isset($ _ POST ['id]))'? – red

-1

改變名稱,以更新和運行代碼

<td><input type="checkbox" name="Update" value="id1<?php echo $data['id'];?>" ></td>

,或者你可以這樣改變,

if(isset($_POST['id1'])) { 

name="id1<?php echo $data['id'];?> 
+0

你能否詳細說明我,哪一個名稱用於更新(按鈕更新)以及複選框的哪個名稱?我的意思是,我的答案更新的名稱用於按鈕更新的名稱 – red

相關問題