用于验证的AJAX/PHP弹出窗口
任何人都可以帮助我。请我不知道如何在每次验证存在时都弹出一个窗口 我使用了用于验证的AJAX/PHP弹出窗口,php,jquery,ajax,Php,Jquery,Ajax,任何人都可以帮助我。请我不知道如何在每次验证存在时都弹出一个窗口 我使用了警报(data.message)但验证表明未定义 以下是我的函数PHP代码: <?php include('connect.php'); $mydata = $_POST["results"]; $inputs = []; parse_str($mydata, $inputs); extract($inputs); $plate_no_full = "$plate_char-$plate_no"; $result1
警报(data.message)代码>但验证表明未定义
以下是我的函数PHP代码:
<?php
include('connect.php');
$mydata = $_POST["results"];
$inputs = [];
parse_str($mydata, $inputs);
extract($inputs);
$plate_no_full = "$plate_char-$plate_no";
$result1 = mysql_query("SELECT * FROM cars where plate_no ='" . $plate_no_full . "'");
$result2 = mysql_query("SELECT * FROM cars where chass_no ='" . $chassis_no . "'");
$result3 = mysql_query("SELECT * FROM cars where eng_no ='" . $engine_no . "'");
$rows1 =mysql_num_rows($result1);
$rows2 =mysql_num_rows($result2);
$rows3 =mysql_num_rows($result3);
$errors = [];
if (mysql_num_rows($result1) > 0) {
$errors[] = array(
'error_code' => 1,
'message' => 'That plate number was already taken'
);
}
if (mysql_num_rows($result2) > 0) {
$errors[] = array(
'error_code' => 2,
'message' => 'That chassis number was already taken'
);
}
if (mysql_num_rows($result3) > 0) {
$errors[] = array(
'error_code' => 3,
'message' => 'That engine number was already taken'
);
}
if(empty($errors)) {
mysql_query("INSERT INTO cars VALUES ('', '$plate_char-$plate_no', '$engine_no', '$chassis_no', '$car_year', '$car_brand', '$car_model', '$horse_power', '$torque','$transmission $transmission_no', '$drivetrain', '$length/$width/$height', '$seating', '$condition','$air_bag' , '$front_wheel/$rear_wheel' , '$front_susp/$rear_susp' , '$brake_front/$brake_rear' , '$eng_type', '$fuel_type' , '$acquisition_cost' , '$marg_cost', '$selling_price' , '')");
if(isset($_POST["txt1"])){
for($i=0;$i<=count($_POST["txt1"])-1;$i++){
mysql_query("INSERT INTO expenses VALUES ('','$plate_char-$plate_no', '". $_POST["txt1"][$i] ."','". $_POST["txt2"][$i] ."', '". $_POST["txt3"][$i] ."')");
}
}
$response = array(
'message' => 'Successfully Added'
);
echo json_encode($response);
} else {
$response = array(
'errors' => $errors
);
echo json_encode($response);
}
我发现我还需要解析返回的JSON。这是因为$.post只是一个预配置的$.ajax调用,它(我认为)没有指定要获取的数据类型。
因此,客户端代码无法作为对象立即访问响应
最简单的选择就是使用jQuery解析响应:
data = $.parseJSON(data);
否则,您可以更改代码以使用$.ajax函数:
$.ajax({
url:url,
type:"POST",
data:data,
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(){
...
}
})
祝你好运 您需要将数据类型添加到post请求中,以便jquery可以解析响应,然后您可以像处理错误一样:
$.post("addfunction.php", {results: perfTimes, txt1: mytxt1, txt2: mytxt2, txt3: mytxt3 }, function (data) {
if (data.errors) {
var alertErrors = "The following errors were found: ";
$.each(data.errors, function(index, error){
alertErrors += "\n" + error.message;//Add each error in a new line
});
alert(alertErrors);
}
else {
alert(data.message);
window.localtion.href = data.redirect;
}
}, "json");//<--datatype here
正在修复您编写的“Location”错误的重定向:
是什么给了你console.log(数据)代码>?是否需要数据?您所说的console.log(数据)是什么意思;?而不是:alert(data.message)代码>写入控制台日志(数据)代码>。现在,如果在windows上,在浏览器中,按F12打开console。所以你们在控制台里得到了什么。它是预期的数据吗?或者检查开发人员工具栏中的网络选项卡,并检查响应。。。但是请阅读我下面的答案。先生,您的代码已经成功添加了。谢谢,先生。但是错误验证不存在。先生,我该怎么办?先生,成功添加表单中的重定向不起作用,先生。好的,关于您的请求,我对我的帖子做了一些更改。非常感谢先生。我试试这个。再次感谢,先生
$.post("addfunction.php", {results: perfTimes, txt1: mytxt1, txt2: mytxt2, txt3: mytxt3 }, function (data) {
if (data.errors) {
var alertErrors = "The following errors were found: ";
$.each(data.errors, function(index, error){
alertErrors += "\n" + error.message;//Add each error in a new line
});
alert(alertErrors);
}
else {
alert(data.message);
window.localtion.href = data.redirect;
}
}, "json");//<--datatype here
$response = array(
'message' => 'Successfully Added',
'redirect' => ''//add here
);
echo json_encode($response);
window.location.href = data.redirect;