2017-04-24 103 views
0

代碼:多選複選框檢查數據庫中的值?

<?php 
    $id = $_GET['id']; 
    $sql = "select * from admin_menu where id = '$id'"; 
    $result = mysqli_query($link,$sql); 
    while ($row = mysqli_fetch_array($result)) 
    { 
     $menu_name = $row['menu_name']; 
     $menu_link = $row['menu_link']; 
     $priority = $row['priority']; 
     $admin_id = explode(",", $row['admin_id']); 
    } 
    if(isset($_POST['update'])) 
    { 
     $admin_id = $_POST['admin_id']; 
     $chk=""; 
     foreach($admin_id as $chk1) 
     { 
      $chk .= $chk1.","; 
     } 
     $menu_name = $_POST['menu_name']; 
     $menu_link = $_POST['menu_link']; 
     $priority = $_POST['priority']; 
     $sql = "update admin_menu set menu_name = '$menu_name', menu_link = '$menu_link', priority = '$priority', admin_id = '$chk' where id = '$id'"; 
     $result = mysqli_query($link,$sql); 
     if($result == true) 
     { 
      $msg .= "<h3 style='color:green;'>update</h3>"; 
     } 
     else 
     { 
      $msg .= "<h3 style='color:red;'>Error!</h3>"; 
     } 
    } 
?> 
<form name="myform" method="post" > 
     <div class="row"> 
      <label for="Producer_firstname">Admin Name</label> 
      <?php 
       foreach ($admin_id as $admin_id) 
       { 
        $chk = ""; 
        if (in_array($chk, $admin_id)) 
        { 
         $chk = 'checked="checked" '; 
        } 
        echo '<input type="checkbox" name="admin_id[]" value="'.$admin_id.'" '.$chk.'/><br/>'; 
       } 
      ?>  
     </div> 

     <div class="row"> 
      <label for="Producer_firstname">Menu Name </label>  
      <input size="60" maxlength="255" name="menu_name" id="menu_name" value="<?php echo $menu_name; ?>" type="text" />   
     </div> 

     <div class="row"> 
      <label for="Producer_lastname" >Menu Link </label>  
      <input size="60" maxlength="255" name="menu_link" id="menu_link" type="text" value="<?php echo $menu_link; ?>" />   
     </div> 

     <div class="row"> 
      <label for="Producer_lastname" >Priority</label>   
      <select name="priority" id="priority"> 
       <option value="<?php echo $priority; ?>"><?php echo $priority; ?></option> 
       <option value="">choose any one</option> 
       <option value="1">1</option> 
       <option value="0">0</option> 
      </select> 
     </div> 

     <div class="row buttons"> 
      <button type="submit" name='update' id='update'>update Menu</button> 
     </div> 
    </form> 

在這段代碼中,我取出由表Admin2的多選框價值,我希望當我更新的形式值複選框檢查,如果複選框的值是存在到數據庫中。我該如何解決它?

謝謝

+0

你的代碼中有幾個許多問題。從哪裏可以得到Admin Name的列表?如果您從同一張表中填充它,則對於少數情況,它將具有空值。然後你將看不到任何複選框列表。你需要在一個單獨的表或數組中維護它。 – manian

回答

0

你的代碼中有幾個問題,
1.更新應選擇查詢之前完成
2.管理員的名單沒有分開管理
3.優先單選按鈕無法正常管理

其他建議,
1.使用準備查詢語句
2.使用implode來附加多個值而不是foreach複選框前個 3.打印管理員名稱

<?php 
    $id = $_GET['id']; 
    if(isset($_POST['update'])) 
    { 
     $chk = implode(',', $_POST['admin_id']); 
     $menu_name = $_POST['menu_name']; 
     $menu_link = $_POST['menu_link']; 
     $priority = $_POST['priority']; 
     $sql = "update admin_menu set menu_name = '$menu_name', menu_link = '$menu_link', priority = '$priority', admin_id = '$chk' where id = '$id'"; 
     $result = mysqli_query($link,$sql); 
     $msg = ""; 
     if($result == true) 
     { 
      $msg .= "<h3 style='color:green;'>update</h3>"; 
     } 
     else 
     { 
      $msg .= "<h3 style='color:red;'>Error!</h3>"; 
     } 
     echo $msg; 
    } 

    $sql = "select * from admin_menu where id = '$id'"; 
    $result = mysqli_query($link,$sql); 
    $row = mysqli_fetch_array($result); 
    $menu_name = $row['menu_name']; 
    $menu_link = $row['menu_link']; 
    $priority = $row['priority']; 
    $admin_id = explode(",", $row['admin_id']); 
    $admins = array('admin1', 'admin2', 'admin3', 'admin4', 'admin5', 'admin6', 'admin7', 'admin8'); 
?> 

<form name="myform" method="post" > 
    <div class="row"> 
     <label for="Producer_firstname">Admin Name</label> 
     <?php 
      foreach ($admins as $admin) 
      { 
       $chk = ""; 
       if (in_array($admin, $admin_id)) 
       { 
        $chk = 'checked="checked" '; 
       } 
       echo $admin.' <input type="checkbox" name="admin_id[]" value="'.$admin.'" '.$chk.'/><br/>'; 
      } 
     ?>  
    </div> 

    <div class="row"> 
     <label for="Producer_firstname">Menu Name </label>  
     <input size="60" maxlength="255" name="menu_name" id="menu_name" value="<?php echo $menu_name; ?>" type="text" />   
    </div> 

    <div class="row"> 
     <label for="Producer_lastname" >Menu Link </label>  
     <input size="60" maxlength="255" name="menu_link" id="menu_link" type="text" value="<?php echo $menu_link; ?>" />   
    </div> 

    <div class="row"> 
     <label for="Producer_lastname" >Priority</label>   
     <select name="priority" id="priority"> 
      <option value="1" <?php if($priority == 1) echo "selected='selected'"; ?>>1</option> 
      <option value="0" <?php if($priority == 0) echo "selected='selected'"; ?>>0</option> 
     </select> 
    </div> 

    <div class="row buttons"> 
     <button type="submit" name='update' id='update'>update Menu</button> 
    </div> 
</form>