Php Alert没有显示

时间:2016-10-27 08:01:48

标签: php

下午好。我有一个模态表单,数据通过Ajax发送。问题是我试图知道数据是否已存在于数据库中,然后获得警报。在我的数据库中,数据不会重复,但警报不会出现。

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;
};

对不起,我编辑了这个问题,希望能更清楚一点。 感谢您的关注

2 个答案:

答案 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;
    }