gpt4 book ai didi

javascript - AJAX 未从 php 返回变量

转载 作者:行者123 更新时间:2023-12-02 17:25:25 24 4
gpt4 key购买 nike

我知道这里有一些类似的问题。但我一整天都做了很多研究和错误修复,试图找出为什么我的 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;
}

目前,如果我删除 dataType 位,警报位就会发生,但目前没有任何反应。

我将再次跳到 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 语句中放置错误捕获,see this answer了解更多信息

编辑:好吧,哇,那是你那里的一些意大利面条代码,但是经过一些清理之后,你的问题是太多的右大括号 } 你必须删除 } 在下面的行之前也删除该行周围的结束和开始标记,它们没有任何用处。

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

} else if (loggedIn()) {

echo 'you are already registed and logged in';

}

我还应该提到您的代码的另外两个问题

  1. 您接受了用户的输入,但没有对其进行清理和正确测试。这不是read here to find out more
  2. 您正在使用 mysl_ 函数,这些函数已经过时且已贬值,它们也存在安全风险。 Check out PDO instead

编辑:

ini_set('error_reporting',1); 添加到 PHP 脚本的顶部。

关于javascript - AJAX 未从 php 返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23547693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com