Javascript AJAX不从php返回变量

Javascript AJAX不从php返回变量,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我知道这里有一些类似的问题。但是我整天都在做大量的研究和bug修复工作,试图弄明白为什么我的ajax没有从php文件返回响应。我只想让它告诉我一个用户已经注册,这样我就可以让用户继续注册过程。我只需要有人给我明智的指导,告诉我我做错了什么 所以我不会让你厌烦js文件的验证部分,只是ajax if(ValidationComplete == true){ var that = $(this), url = that.attr('action'), type = that.attr('me

我知道这里有一些类似的问题。但是我整天都在做大量的研究和bug修复工作,试图弄明白为什么我的ajax没有从php文件返回响应。我只想让它告诉我一个用户已经注册,这样我就可以让用户继续注册过程。我只需要有人给我明智的指导,告诉我我做错了什么

所以我不会让你厌烦js文件的验证部分,只是ajax

  if(ValidationComplete == true){
   var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};

that.find('[name]').each(function(register, value) {
    var that = $(this),
        name = that.attr('name'),
        value = that.val();

        data[name] = value; 
});

    $.ajax({
    url:url, 
    type:type,
    data: data,
    dataType: 'json', 
    success: function(result){
        alert(result.status);
        console.log(result.data);

    },
error: function(xhr, textStatus, error){
  console.log(xhr.statusText);
  console.log(textStatus);
  console.log(error);
   }        

});

return false;
} else {
    return false;
}
目前,如果我删除了数据类型位,警报位就会出现,但目前没有任何效果

再一次,我将跳到php文件的主题

    $query = "INSERT INTO person 
   VALUES('','$first_Name','$surname','$email','$dob','$password',
  '1','','0','1','','','','$emailCode')";
  if($query_run =mysql_query($query)) {
      echo json_encode(array("response"='true'));
任何帮助都将是惊人的

更新代码:

  <?php    

if( isset($_POST['firstname']) && 
isset($_POST['surname']) && 
isset($_POST['email']) && 
isset($_POST['day']) && 
isset($_POST['month']) && 
isset($_POST['year']) && 
isset($_POST['password']) && 
isset($_POST['re_type_password'])){

  $first_Name = $_POST['firstname'];
  $surname = $_POST['surname'];
  $email = $_POST['email'];
$password = $_POST['password'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$re_type_password = $_POST['re_type_password'];
$emailCode = md5($_POST['$first_Name'] + microtime());

if(!empty($first_Name)&& 
!empty($surname)&& 
!empty($email)&& 
!empty($day) && 
!empty($month) && 
!empty($year) && 
!empty($password)&&                                   
!empty($re_type_password)){



  if(strlen($firstname)>30 || strlen($surname)>30 || strlen($email)>50){
  echo 'the data enetered is to long';
} else {
  if($password != $re_type_password){
  echo 'passwords do not match, please try again.';
} else{ 
$query = "SELECT email FROM person WHERE email ='$email'";
$query_run = mysql_query($query);
if(mysql_num_rows($query_run)==1){
  echo 'Email address already on databse';         
} else{
  if($day>31 || $month>12){
    echo 'date of birth wrong';
  } else{

    $dob= $year.'-'.$day.'-'.$month;
  $query = "INSERT INTO person 
  VALUES('','$first_Name','$surname','$email','$dob','$password'
   ,'1','','0','1','','','','$emailCode')";
   if($query_run =mysql_query($query)) {
      email($email, 'Email Confirmation', "hello ". $first_Name." ,
    \n\n you need to   activate your account so click the link  ");
    $return_data['status'] = 'success';
     echo json_encode($return_data);
  } else {
      echo @mysql_error();
  }

}

 }

  } 
  }

  } else {
      echo "<p id='error'> All fields are required. Please try again.</p>";

  }
      }

   ?>

  <?php
  } else if (loggedIn()) {

echo 'you are already registed and logged in';

   }


  ?>

   </body>
  </html>

最后一行应该是

echo json_encode(array("response"=>'true'));
请参阅数组声明中添加的
,该声明用于为数组分配键

一般来说,您应该在ajax语句中添加错误捕获,以获取更多信息

编辑:好的,哇,这是你的一些意大利面代码,但是在稍微清理一下之后,你的问题是结束括号太多了
}
,你必须在下一行之前删除
}
,也去掉这一行周围的结束和开始标记,它们没有任何用处

} // <------- THIS ONE!

} else if (loggedIn()) {

    echo 'you are already registed and logged in';

}

}//嘿,谢谢,添加了“>”还是没什么运气,但我确实添加了错误位,这是响应:OK validation.js:242 parserror validation.js:243 SyntaxError{stack:(…),消息:"意外标记@Jordanbaggs您的php脚本中存在导致错误的问题,如果您可以编辑您的帖子并添加您的php代码,也许我可以看到它,或者如果您有firebug,右键单击对脚本的ajax调用,然后单击“在新选项卡中打开”,这允许您模拟到脚本中的帖子并查看完整的错误页面。我可以我在测试ajax调用时经常遇到这种情况。@jordanbacks我也怀疑如果你去掉
数据类型:“json”,现在你会得到一个更好的错误。谢谢你提供的信息,我会看一看!我更新了我的php代码,我仍然会遇到同样的错误。我正在删除你的评论所指的那一个。有什么想法吗?你移动了
数据类型:“js”了吗在“,
上,通过ajax调用,php中的所有错误消息都不是json编码的。您可能对php错误有更好的了解。ajax成功方法的参数为“result”,但您正在记录“response”。这是一个问题,下面列出了其他问题。