如果输入字段为空,则阻止提交

时间:2017-06-16 06:44:16

标签: javascript php html css comments

我为我的社交媒体开发了一个评论系统,但是评论被插入到数据库中,即使它是空的。所以如果评论字段为空,我不希望发生任何事情,我不想回复任何消息或提交评论。

这是我的代码

    <?php 
    // Get id of post
    if(isset($_GET['post_id'])) {

        $post_id = $_GET['post_id'];
    }

    $user_query = mysqli_query($con, "SELECT added_by, user_to FROM posts 
    WHERE id='post_id'");
    $row = mysqli_fetch_array($user_query);

    $posted_to = $row['added_by'];
    $user_to = $row['user_to'];

    if(isset($_POST['postComment' . $post_id])) {

        $post_body = $_POST['post_body'];
        $post_body = mysqli_escape_string($con, $post_body);
        $date_time_now = date("Y-m-d H:i:s");
    $insert_post = mysqli_query($con, "INSERT INTO comments VALUES ('', 
    '$post_body', '$userLoggedIn', '$posted_to', '$date_time_now', 'no', 
    '$post_id')");

    if($posted_to != $userLoggedIn) {

        $notification = new Notification($con, $userLoggedIn);
        $notification->insertNotification($post_id, $posted_to, "comment");
    }

    if($user_to != 'none' && $user_to != $userLoggedIn) {

        $notification = new Notification($con, $userLoggedIn);
        $notification->insertNotification($post_id, $user_to, 
        "profile_comment");
    }

    $get_commenters = mysqli_query($con, "SELECT * FROM comments WHERE 
    post_id='$post_id'");
    $notified_users = array();
    while($row = mysqli_fetch_array($get_commenters)) {

        if($row['posted_by'] != $posted_to && $row['posted_by'] != $user_to
            && $row['posted_by'] != $userLoggedIn && 
        !in_array($row['posted_by'], $notified_users)) {

            $notification = new Notification($con, $userLoggedIn);
            $notification->insertNotification($post_id, $row['posted_by'], 
           "comment_non_owner");

            array_push($notified_users, $row['posted_by']);

        }

    }



    echo "<p>Comment Posted! </p>";
    }

    ?>

   <form action="comment_frame.php?post_id=<?php echo $post_id; ?>" 
   id="comment_form" name="postComment<?php echo $post_id; ?>" 
    method="POST">
    <textarea name="post_body" placeholder="Add a comment"></textarea>
    <input type="submit" name="postComment<?php echo $post_id; ?>" 
     value="Comment"> 

 </form>

 <!-- Load Comments -->
 <?php 
 $get_comments = mysqli_query($con, "SELECT * FROM comments WHERE 
 post_id='$post_id' ORDER BY id ASC");
 $count = mysqli_num_rows($get_comments);

 if ($count != 0) {

    while($comment = mysqli_fetch_array($get_comments)) {

        $comment_body = $comment['post_body'];
        $posted_to = $comment['posted_to'];
        $posted_by = $comment['posted_by'];
        $date_added = $comment['date_added'];
        $removed = $comment['removed'];

        //Timeframe

        $date_time_now = date("Y-m-d H:i:s");
        $start_date = new DateTime($date_added); // Time of Post
        $end_date = new DateTime($date_time_now); // Current time
        $interval = $start_date->diff($end_date); // Difference between 
        dates
        if($interval->y >= 1) {
            if($interval == 1)
                $time_message = $interval->y . " year ago"; // 1 year ago
            else
                $time_message = $interval->y . " years ago"; // 1+ year ago
        }
        else if ($interval-> m >= 1) {

            if($interval->d == 0) {
                $days = " ago";
            }
            else if($interval->d == 1) {
                $days = $interval->d . " days ago";
            }
            else {
                $days = $interval->d . " days ago";
            }

             if($interval->m == 1) {
                $time_message = $interval->m . " month". $days;
             }
             else {

                $time_message = $interval->m . " months". $days;
             }
        }
        else if($interval->d  >=1) {
            if($interval->d == 1) {
                $time_message = "Yesterday";
            }
            else {
                $time_message = $interval->d . " days ago";
            }
        }
        else if($interval->h >= 1) {
            if($interval->h == 1) {
                $time_message = $interval->h . " hour ago";
            }
            else {
                $time_message = $interval->h . " hours ago";
            }
        }
        else if($interval->i >= 1) {
            if($interval->i == 1) {
                $time_message = $interval->i . " minute ago";
            }
            else {
                $time_message = $interval->i . " minutes ago";
            }
        }
        else {
            if($interval->s < 30) {
                $time_message = "Just now";
            }
            else {
                $time_message = $interval->s . " seconds ago";
            }
        }

        $user_obj = new User($con, $posted_by);
        ?>
        <div class="comment_section">
        <a href="<?php echo $posted_by?>" target="_parent"><img src="<?php 
         echo $user_obj->getProfilePic(); ?>" title="<?php echo $posted_by; 
         ?>" style="float:left;" height="30"></a>
        <a href="<?php echo $posted_by?>" target="_parent"> <b><?php echo 
        $user_obj->getFirstAndLastName(); ?> </b> </a>
        &nbsp;&nbsp;&nbsp;&nbsp; <?php echo $time_message . "<br>" . 
        $comment_body; ?>
        <hr>
        </div>
        <?php

     } 
     }

    else {

    echo "<center><br><br>No comments to show</center>";
     }

    ?>



  </body>
  </html>

2 个答案:

答案 0 :(得分:1)

将此属性添加到正确的输入字段:<input required: required;>应该为您修复: - )

有关详细信息,请参阅http://w3c.github.io/html/sec-forms.html#the-required-attribute

答案 1 :(得分:0)

包含以下演示。第一个表单在提交时会显示错误消息 - 属性required - (您可能不想要),而第二个表单没有提供任何反馈 - 属性requirednovalidate表格。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
   <textarea required onsubmit="return false;"></textarea><br>
   <input type="submit" value="submit">
</form><br><br>

<form novalidate onsubmit="return false;">
   <textarea required></textarea><br>
   <input type="submit" value="submit">
</form>
&#13;
&#13;
&#13;