Php代码的一部分:
require 'puenteConexion.php';
// ***------------------------------------------------***
$proceso = $_POST['pro'];
$id = $_POST['id-paciente'];
$nombre = $_POST['nombre'];
$apellido_pat = $_POST['apellido_pat'];
$apellido_mat = $_POST['apellido_mat'];
$sexo = $_POST['sexo'];
$nacimiento = $_POST['nacimiento'];
$total = $conexion->query(" SELECT COUNT(*) FROM tbl_paciente WHERE nombre='$nombre' and apellido_pat='$apellido_pat' and nacimiento='$nacimiento' ");
$data_exists = ($total->fetchColumn() > 0) ? true : false;
if($data_exists){
die('The person exist');
}else{
//VERIFICANDO EL PROCESO
switch($proceso){
case 'Registro':
$conexion->query("INSERT INTO tbl_paciente (id_paciente, nombre, apellido_pat, apellido_mat, sexo, nacimiento) VALUES (null,'$nombre','$apellido_pat','$apellido_mat','$sexo','$nacimiento')");
break;
case 'Edicion':
$conexion->query("UPDATE tbl_paciente SET nombre = '$nombre', apellido_pat = '$apellido_pat', apellido_mat = '$apellido_mat',
sexo = '$sexo', nacimiento = '$nacimiento' WHERE id_paciente = '$id'");
break;
}
}
这是在提交时返回我的表单的函数:
function agregaRegistro(){
var url = 'modal/php/agrega_paciente.php';
$.ajax({
type:'POST',
url:url,
data:$('#formulario').serialize(),
success: function(){
if ($('#pro').val() == 'Registro'){
$('#formulario')[0].reset();
$('#modal-mensaje').addClass('bien').html('Registro completado con exito').show(200).delay(1600).hide(200);
$('#pro').val('Registro');
return false;
}else{
$('#modal-mensaje').addClass('bene').html('Edicion completada con exito').show(200).delay(1600).hide(200);
return false;
}
}
});
return false;
};
对不起,我编辑了这个问题,希望能更清楚一点。 感谢您的关注
答案 0 :(得分:3)
您的ajax请求中没有使用任何响应。你需要得到回应:
success: function(response){
不知道你为什么在这里使用die()
,你可以在这里使用echo
:
if($data_exists){
echo 'The person exist';
}else{
// else part
}
但是,你怎么能检查ajax响应中的成功或错误。你可以在这里使用json:
if($data_exists){
echo json_encode(array('status'=>0,'message'=>'The person exist')); // for error
}else{
// else part
echo json_encode(array('status'=>1,'message'=>'Success message')); // for success
}
在此之后,您需要将ajax更改为:
$.ajax({
type:'POST',
url:url,
data:$('#formulario').serialize(),
dataType: "json", // will return json response
success: function(response){
if(response.status){
// your success part
}
else{
alert(response.message); // error response in alert
}
}
});
其他改进:
您可以使用Prepared Statement来阻止使用SQL注入的SQL语句。
答案 1 :(得分:0)
我在ypur成功功能中找不到任何警报。所以浏览器显然不会发出警报。
我会尝试编辑:
success: function(something){
if ($('#pro').val() == 'Registro'){
$('#formulario')[0].reset();
$('#modal-mensaje').addClass('bien').html('Registro completado con exito').show(200).delay(1600).hide(200);
$('#pro').val('Registro');
alert (something);
return false;
}else{
$('#modal-mensaje').addClass('bene').html('Edicion completada con exito').show(200).delay(1600).hide(200);
return false;
}