dsb53973 2014-10-16 12:42
浏览 25
已采纳

要求用户选择Checkbox

So basically, I want to require the user to select from checkbox ...

Here is addpost.php:

<form action='' method='post'>
    <p><label>Title</label><br />
    <input class= "form-control" type='text' name='postTitle' value='<?php if(isset($error)){ echo $_POST['postTitle'];}?>'></p>
    <p><label>Description</label><br />
    <textarea name='postDesc' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postDesc'];}?></textarea></p>
    <p><label>Content</label><br />
    <textarea name='postCont' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postCont'];}?></textarea></p>
    <!--For textarea's rather then making the admins enter the html for the text themselves its better to use an editor-->
     <script>
            CKEDITOR.replace( 'postDesc',{customConfig:'/sics/ckeditor/ckeditor_config.js'});
            CKEDITOR.replace( 'postCont',{customConfig:'/sics/ckeditor/ckeditor_config.js'} );
     </script>
    <fieldset>
        <label><h5>Select a category</h5></label><br>
        <?php   
        $stmt2 = $db->query('SELECT catID, catTitle FROM category ORDER BY catTitle');
        $checked = '';
        while($row2 = $stmt2->fetch()){
            if(isset($_POST['catID'])){
                if(in_array($row2['catID'], $_POST['catID'])){
                   $checked="checked='checked'";
                }
            }
            echo "<input type='checkbox' name='catID[]' value='".$row2['catID']."' $checked> ".$row2['catTitle']."<br />";
        }
        ?>
    </fieldset>
    <br>
    <p><input class="btn btn-primary btn" type='submit' name='submit' value='Submit'></p>
    <?php include('../includes/submitpost.php');?>
    </form>

Here is when user submits

<?php
//if form has been submitted process it
if(isset($_POST['submit'])){
    //collect form data
    extract($_POST);
    //very basic validation
    if($postTitle ==''){
        $error[] = 'Please enter the title.';
    }
    if($postDesc ==''){
        $error[] = 'Please enter the description.';
    }
    if($postCont ==''){
        $error[] = 'Please enter the content.';
    }
    if(!isset($error)){
        try {
            $postURL = slug($postTitle);
            //insert into database
            $stmt = $db->prepare('INSERT INTO posts (postTitle,postURL,postDesc,postCont,postDate) VALUES (:postTitle, :postURL, :postDesc, :postCont, :postDate)') ;
            $stmt->execute(array(
                ':postTitle' => $postTitle,
                ':postURL' => $postURL,
                ':postDesc' => $postDesc,
                ':postCont' => $postCont,
                ':postDate' => date('Y-m-d H:i:s')
            ));
            $postID = $db->lastInsertId();
            //add categories
            if(is_array($catID)){
                foreach($_POST['catID'] as $catID){
                    $stmt = $db->prepare('INSERT INTO post_cats (postID,catID)VALUES(:postID,:catID)');
                    $stmt->execute(array(
                        ':postID' => $postID,
                        ':catID' => $catID
                    ));
                }
            }
            //redirect to MainPanel page
            header('Location: ../users/MainPanel.php');
            exit;
        } catch(PDOException $e) {
            echo $e->getMessage();
        }
    }
}
//check for any errors
if(isset($error)){
    foreach($error as $error){
        echo '<p class="error">'.$error.'</p>';
    }
}?>

Is it possible? cause I cant get it to work

  • 写回答

5条回答 默认 最新

  • dpw70180 2014-10-16 12:51
    关注

    When you have multiple checkboxes with same name (array), you can't use required attribute for "at least one checkbox" (http://jsfiddle.net/frantisekmasa/kvtbqLe7/2/).

    You should check it server-side:

    if(isset($_POST['catID']) && ! empty($_POST['catID']) {
        // User has selected at least one checkbox
    } else {
       // User hasn't selected checkbox
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?