0

I want to display error messages below the fields in my contact form. But Im not able to do so. Here is my code:-

contact.html

    <!DOCTYPE html>
<html>
<head>

<link rel="stylesheet" media="screen" href="styles.css" >
<script type="text/javascript" src="my.js"></script>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){

$('#submit').click(function(){

$.post("send.php", $("#mycontactform").serialize(),  function(response) {   
 $('#success').html(response);
 //$('#success').hide('slow');
});
return false;


});

});


</script>
</head>
<body>

<form id="mycontactform" class="contact_form" action="" method="post" name="contact_form">
    <ul>
        <li>
             <h2>Contact Us</h2>
             <span class="required_notification">* Denotes Required Field</span>
        </li>
        <li>
            <label for="name">Name:</label>
            <input type="text"  id="name"  name="name" placeholder="John Doe" required />
            <small class="errorText"><?php echo $error["name"]; ?></small>
        </li>
        <li>
            <label for="email">Email:</label>
            <input type="email" name="email" id="email"  placeholder="john_doe@example.com" required />
            <span class="form_hint">Proper format "name@something.com"</span>
            <small class="errorText"><?php echo $error["email"]; ?></small>
        </li>

        <li>
            <label for="message">Message:</label>
            <textarea name="message" id="message"  cols="40" rows="6" required ></textarea>
            <small class="errorText"><?php echo $error["message"]; ?></small>
        </li>
<li>
            <input type="button"  class="submit" style="width:70px; text-align:center; height:30px; margin-left:200px; cursor:pointer"  value="SEND" id="submit" />


        </li><div id="success" style="color:red;"></div>
</form>
</body>
</html> 

send.php

<?php

// Here we get all the information from the fields sent over by the form.
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

    $to = 'babloopuneeth@gmail.com';
    $subject = 'the subject';
    $message = 'FROM: '.$name.' Email: '.$email.'Message: '.$message;
    $headers = 'From: youremail@domain.com' . "\r\n";


  $error  = array(
    "name"    =>  "",
    "email"   =>  "",
    "message" =>  ""
  );

  $email  = ( isset( $_POST["email"] ) ) ? trim( $_POST["email"] ) : false;
  $name   = ( isset( $_POST["name"] ) ) ? trim( $_POST["name"] ) : false;
  $message  = ( isset( $_POST["message"] ) ) ? trim( $_POST["message"] ) : false;

  if ( !$emai ) {
    $error["email"] = "Email is required!";
  }
  if ( !$name ) {
    $error["name"] = "Name is required!";
  }
  if ( !$message ) {
    $error["message"] = "Message is required!";
  }

else { // this line checks that we have a valid email address
    mail($to, $subject, $message, $headers); //This method sends the mail.
    echo "Your email was sent!"; // success message
}
?>  

I tried many other ways but its not working. I just want the error message to be displayed below each field if the field is empty, Plz help me..

4

3 回答 3

0

Use <br> after each input

于 2013-07-23T08:02:54.573 回答
0

您应该使用 jQuery AJAX 来检索服务器端验证。这里是材料

仅供参考,最好使用 jQuery Validation 来验证表单。在这里查看简单而详尽的示例。您可以根据您的情况调整代码。

于 2013-07-23T08:25:19.160 回答
0

$.posthttp ://api.jquery.com/jQuery.post/

这是jQuery AJAX。因此您无法<?php echo $error["name"]; ?>在表单页面上显示返回消息。您必须使用 javascript 来显示错误消息。

于 2013-07-23T08:08:26.557 回答