Как получить идентификатор указанной c записи в таблице - PHP - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь изменить значение столбца is_publi c в таблице статей MySQL с помощью тумблера. если я оберну ввод (тумблер) внутри, чтобы получить идентификатор записи, используя метод $ _GET для внесения необходимых изменений в статьях. php, тогда он не извлекает данные is_publi c в тумблер. Есть ли другой способ получить идентификатор указанной записи c?

снимок экрана таблицы списка статей

это все статьи. php код:

                    <table id="datatable" class="table table-hover" style="width:100%">                                                                    
                         <thead>
                        <tr>
                            <th>#</th>
                            <th>Title</th>
                            <th>Author</th>
                            <th>Abstract</th>
                            <th>category</th>
                            <th>Date</th>
                            <th>Action</th> 
                            <th>Publish</th> 
                        </tr>
                    </thead>
                    <tbody>

                       <?php foreach($articles as $key => $article): ?>

                        <tr>
                            <td><?php echo $key+1 ?></td> 
                            <td><?php echo $article['title'] ?></td>
                            <td><?php echo $article['author_id'] ?></td>
                            <td><?php echo $article['abstract'] ?></td> 
                            <td><?php echo $article['category_id'] ?></td>
                            <td><?php echo $article['entry_date'] ?></td>
                            <td>
                              <div class="btn-group" role="group" aria-label="Basic example">
                                <button type="button" class="btn btn-primary btn-sm">Edit</button>
                                <button type="button" class="btn btn-success btn-sm">Show</button>
                                <button type="button" class="btn btn-danger btn-sm">Delete</button> 
                              </div>
                            </td>
                            <td> 

                                <form action="all-articles.php" method="post">
                                <label class="custom-toggle">
                                  <?php if($article['is_public']): ?>
                                    <input type="checkbox" checked name="check">
                                  <?php else: ?>
                                    <input type="checkbox"  name="uncheck">
                                  <?php endif; ?>
                                    <span class="custom-toggle-slider rounded-circle"></span>
                                </label> 
                                </form> 
                            </td>
                        </tr> 


                       <?php endforeach; ?>

                    </tbody>
                </table>

1 Ответ

0 голосов
/ 01 февраля 2020

Ну, вы можете отправить идентификатор статьи в вашей форме, а затем прослушать его и делать с ним что хотите. Итак,

// As you are already in foreach loop so,
 <form action="all-articles.php" method="post">
    <label class="custom-toggle">
      <?php if($article['is_public']): ?>
        <input type="checkbox" checked name="published" value="<?php echo $article['id']; ?>>
       <?php else: ?>
         <input type="checkbox"  name="published" value="<?php echo $article['id']; ?>>
       <?php endif; ?>
         <span class="custom-toggle-slider rounded-circle"></span>
      </label> 
  </form> 

Затем в вашем /all-articles.php проверьте $_POST['check'], который должен дать article id. запросить вашу базу данных с этим идентификатором и переключить столбец is_public

Другой способ - отправить скрытое поле, например,

// As you are already in foreach loop so,
 <form action="all-articles.php" method="post">
    <label class="custom-toggle">
      <?php if($article['is_public']): ?>
        <input type="checkbox" checked name="published" value="<?php echo $article['id']; ?>>
        <input type="hidden" name="is_published" value="yes"> or 1
       <?php else: ?>
         <input type="hidden" name="is_published" value="no"> or 0
         <input type="checkbox"  name="published" value="<?php echo $article['id']; ?>>
       <?php endif; ?>
         <span class="custom-toggle-slider rounded-circle"></span>
      </label> 
  </form>
...