php
  • checkbox
  • foreach
  • 2017-01-23 102 views -1 likes 
    -1

    我如何去顯示在jokecategory表中被選中的複選框,以及那些沒有被顯示但沒有被選中的複選框。這是我目前有:PHP顯示數據在複選框

    <div class="control-group"> 
         <?php 
         $sql = 'SELECT jokecategory.joke_id, jokecategory.category_id, category.name 
         FROM jokecategory 
         INNER JOIN category ON category.id = jokecategory.category_id 
         WHERE joke_id= :joke_id'; 
         $stmt = $dbConnection->prepare($sql); 
         $stmt->bindValue(':joke_id', $id); 
         $stmt->execute(); 
    
         ?> 
    
         <fieldset> 
         <legend class="control-label">Categories:</legend> 
         <?php foreach ($stmt as $row) { ?> 
          <div class="controls"> 
           <label for="category<?php echo($row['category_id']);?>"> 
           <input type="checkbox" id="category<?php echo $row['category_id']; ?>" name="checkbox[]" value="<?php echo $row['category_id']; ?>" checked> 
           <?php echo($row['name']); ?></label> 
          </div> 
         <?php } ?> 
    

    與(類別表中的數據):

    <?php $sql = 'SELECT id, name FROM category'; 
            foreach ($dbConnection->query($sql) as $data) { ?> 
            <div class="controls">  
             <label for="category<?php echo($data['id']);?>"> 
             <input type="checkbox" name="categories[]" id="category<?php echo($data['id']); ?>" value="<?php echo($data['id']); 
    
    
    
             ?>"> 
             <?php echo($data['name']); ?></label> 
            </div> 
            <?php } ?> 
    
          </fieldset> 
         </div> 
    

    它在此刻兩段,因爲我不知道如何來顯示輸出數據合併爲一個合併組。所以它像這樣:

    Joke id: xxxxx 
    joke_text: xxxxxx 
    author_name: xxxxx 
    
    categories 
    1: [x] 
    2: [x] 
    3: [ ] 
    4: [ ] 
    
    +0

    首先,你得到的查詢數據?提取後您是否嘗試過'print_r($ data)'?其次,'$ joke_id和其他變量'將始終具有查詢的最後數據,因爲這些變量不是數組。第三,你的'foreach'調用'$ data ['category_id']',這是否正確? –

    +0

    我收到所有其他字段的數據。這只是我不確定如何放在一起的循環元素。 –

    +0

    使用'print_r($ data)'和'joke.id = 28',它在jokecategory表下有4個記錄。但是,'$ data ['category_id']僅顯示來自jokecategory表內的1x數據項。 –

    回答

    0

    我不知道,但 - 是$ data [「category_id」]真的是一個數組?如果是這樣,你可以使用密鑰對數組像這樣:

    <?php foreach ($data['category_id'] as $id => $checkbox) { ?> 
        <input type="checkbox" id="<?php echo $id; ?>" name="checkbox[]" /> 
    <?php } ?> 
    
    +0

    我將如何將$ data [「category_id」]放入數組中? –

    +0

    我已經添加了更新 –

    0

    可能會像下面檢查您的SQL查詢,並添加類別名稱,以獲取和顯示如。使用category_name下面 並做一些修改如下

    <fieldset> 
         <legend class="control-label">Categories:</legend> 
         <?php foreach ($data as $checkbox) { ?> 
          <div class="controls">  
           <label for="category<?php echo($checkbox['category_id']); ?>"> 
            <input type="checkbox" name="categories[]" id="chk_category<?php echo($checkbox['category_id']); ?>" value="<?php echo($checkbox['category_id']); ?>"> 
            <?php echo($checkbox['category_name']); ?></label> 
          </div> 
         <?php } ?> 
        </fieldset> 
    
    0

    我不知道,我完全理解的問題,但你嘗試過

    foreach ($data['category_id'] as $id => $checkbox)

    相關問題