2017-01-22 13 views
3

チェックボックスが選択されていない場合、エラーメッセージを表示しようとしています。私はそれが入力フィールドを完了するために管理してきたが、チェックボックスでそれを行う方法の不確実さ。これは私が今までに持っているものです:チェックボックスがチェックされているかどうかを確認します

<?php 
    # check if data has been posted 
    if (!empty($_POST)) { 
     # keep track validation errors 
     $author_error = null; 
     $categories_error = null; 

     # keep track of post values 
     $author = $_POST['author']; 
     $categories = $_POST['categories']; 

     # validate input 
     if (empty($author)) { 
      $author_error = 'Please select author'; 
      $valid = false; 
     } 

     if (empty($categories)) { 
      $categories = 'Please select categories'; 
      $valid = false; 
     } 

     # if data is valid, insert into the database 
     if ($valid) { 

     } 
    } 
    ?> 

     <div class="control-group <?php if (!empty($author_error)){ echo 'error'; } ?>"> 
      <label class="control-label">Author</label> 
      <div class="controls"> 
       <select name="author" id="author"> 
        <option value="">Select one</option> 
        <?php $sql2 = 'SELECT id, name FROM author'; 
        foreach ($dbConnection->query($sql2) as $data2) { ?> 
        <option value="<?php echo $data2['id']; ?>" 
         <?php if(isset($author) && $author == $data2['id']) { echo 'selected'; } ?>> 
         <?php echo $data2['name']; ?> 
        </option> 
        <?php } ?> 
       </select> 
       <?php if (!empty($author_error)) { echo '<span class="help-inline">' . $author_error . '</span>'; } ?> 
      </div> 
     </div> 

     <div class="control-group <?php if (!empty($categories_error)){ echo 'error'; } ?>"> 
      <fieldset> 
      <legend class="control-label">Categories:</legend> 
      <?php $sql3 = 'SELECT id, name FROM category'; 
      foreach ($dbConnection->query($sql3) as $data3) { ?> 
      <div class="controls">  
       <label for="category<?php echo($data3['id']);?>"> 
        <input type="checkbox" name="categories" id="categories" value="<?php echo($data3['id']); ?>" 
        <?php if(isset($_POST['categories']) && in_array($data3['id'], $_POST['categories'])) { echo 'checked'; } ?>> 
        <?php echo($data3['name']); ?> 
       </label> 
      </div> 
      <?php } ?> 
      </fieldset> 
      <?php if (!empty($categories_error)) { echo '<span class="help-inline controls">' . $categories_error . '</span>'; } ?> 
     </div> 

私はカテゴリフィールドに間違っていますか?

答えて

3

は好きなことを確認します。

isset($_POST['categories']) 
+0

いやにエラーメッセージを格納するための変数$categoriesを使用している場合は、あなたがチェックしています。私は著者フィールドのために同じを使用する必要がありますか? –

+0

いいえ、

1

ライン#62で$categories_errorは空ですが、あなたがそれだったライン#19

+0

良い場所{ //ショーのエラー を選択 //ませ値}」didnのそれを見てください。 –

関連する問題