如何从PHP回显接收数据以使用AJAX显示?

问题描述:

简单地说:我如何从PHP回显接收数据以使用AJAX显示?如何从PHP回显接收数据以使用AJAX显示?

我有能力使用JQuery;但是,我不知道这是否适合工作。我只是在HTML中有一个表单,用户可以输入信息,但是当他们输入数据时,我想检查数据库的可用性。如果输入检查并没有问题,我不希望显示任何文本,但如果出现问题,我想显示错误。我目前有一个注册表单,可以通过数据库与PHP和MySQL一起工作,但是我无法在不刷新页面的情况下回显错误。有没有什么方法可以在不刷新的情况下显示错误?

HTML:

<form action="index.php" method="POST"> 
      <table> 
       <tr> 
        <td colspan="3"><h1>New to the site?</h1></td> 
       </tr> 
       <tr> 
        <td><span class="login_text">Username:</span></td> 
        <td><input type="text" class="inputs" name="signup_username" value="<?php echo $username ?>"></td> 
       </tr> 
       <tr> 
        <td><span class="login_text">Password:</span></td> 
        <td><input type="password" class="inputs" name="signup_password"></td> 
       </tr> 
       <tr> 
        <td><span class="login_text">Password <span style="color: #666666;">(repeat)</span>:</span></td> 
        <td><input type="password" class="inputs" name="signup_passwordrepeat"></td> 
       </tr> 
       <tr> 
        <td><span class="login_text">Email:</span></td> 
        <td><input type="text" class="inputs" name="signup_email" value="<?php echo $email ?>"></td> 
       </tr> 
       <tr> 
        <td colspan="2"><input type="submit" id="signupbutton" class="subutton" style="font-family: Georgia, sans-serif; font-size: 1.5em; width: 265px; height: 3em;" value="Sign Up!" name="signup_button"></td> 
       </tr> 
      </table> 
     </form> 

PHP:

<?php 
      $submit = $_POST["signup_button"]; 
      $username = mysql_real_escape_string($_POST["signup_username"]); 
      $password = mysql_real_escape_string($_POST["signup_password"]); 
      $repeatpassword = mysql_real_escape_string($_POST["signup_passwordrepeat"]); 
      $email = mysql_real_escape_string($_POST["signup_email"]); 
      $date = date(m.d.y); 

      if($submit) { //If the form is submitted 
       if($username && $password && $repeatpassword && $email) { //If everything is filled out 
        //Check length of username 
        if(strlen($username) <= 16) { 
         $usercheck = mysql_query("SELECT * FROM artists WHERE username='$username'"); 
         $usernum = mysql_num_rows($usercheck); 

         if($usernum == 0) { //Check for availability of username 
          $emailcheck = mysql_query("SELECT * FROM artists WHERE email='$email'"); 
          $emailnum = mysql_num_rows($emailcheck); 

          if($emailnum == 0) { //Check for availability of email address 
           if($password == $repeatpassword) { //Check for identical password input 
            //Encrypt password 
            $password = sha1($password); 
            $repeatpassword = sha1($repeatpassword); 

            //REGISTER 
            $register = mysql_query("INSERT INTO artists VALUES ('', '', '$username', '$password', '$email', '', '$date')"); 
            echo("Registration successful, please log in on the right!"); 
           } 
           else 
            echo("The passwords don't match!"); 
          } 
          else 
           echo("That email address has already been registered!"); 
         } 
         else 
          echo("That username has already been registered!"); 
        } 
        else 
         echo("The username you entered is too long!"); 
       } 
       else 
        echo("Please fill out all fields!"); 
      } 
     ?> 
+0

这些在同一个文件中,它们都是在“index.php”中。 – cereallarceny 2011-05-23 03:00:20

+0

在JavaScript中,您可以通过ID更新对象的innerContent! – sikas 2011-05-23 03:02:40

jQuery validation plugin是jQuery的标准验证系统,并提供支持基于AJAX的验证(如果它发送回来的东西到服务器,以验证它并在失败时显示一条消息)。

把你想要在JSON如呼应消息

<?php echo json_encode(array('message_you_want' => 'your message here'));?> 

在你的Ajax调用然后设置数据类型为JSON如

dataType : 'json' 

,然后在你的AJAX你的成功的功能,你可以通过通过例如json对象

$.ajax({ 
dataType: 'json', 
url : 'url', 
data : {/*data here*/}, 
success: function(j) 
{ 
    //access your message like this 
    alert(j.message) 
} 
}); 

它也是不好的做法嵌套你的if语句像这样。你应该看看

希望这有帮助