从PHP返回值到JSON / AJAX

时间:2011-11-21 11:32:56

标签: php jquery ajax json

我的一位朋友给了我一个js文件片段,对我有用:

$.ajax({
    type: "POST",
    url: "../CheckPerson.php",
    data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        var res = response.d;
        if (res == true) {
            jAlert('Patient Name already exists!', 'Error');
            return;
        }
        else { 
            $.ajax({ 
                type: "POST",
                url: "../NewPerson.php",
                data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "','gender':'" + _gender + "','birthDate':'" + _bday + "','ssn':'" + _ssn + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var _id = response.d;
                    if (_id.length != 0) {
                        $('#patientName').removeAttr('disabled');
                        $('#patientName').val(_lname + ", " + _fname + " " + _mname);
                        $('#patientId').val(_id[0].patientID);
                        $('#dateOfBirth').val(_bday);
                        $('#referringDoctor').removeAttr('disabled');
                        $('#referringDoctor').focus();
                        $('#patientAge').val(_id[1]);
                        $('#ptLastName').val('');
                        $('#ptFirstName').val('');
                        $('#ptMiddleName').val('');
                        $('#ptGender').val('');
                        // $('input[name="birthdate"]').val(); // $('#ptBirthDate').val();
                        $('#ptSSN').val('');
                    }
                    // if (_id == true) {
                    // }
                    insertCallback(_id);
                    // $('#diagnosis tbody>tr:last').attr('dinfo', '_IEDiagnosis|' + _id);
                },
                failure: function (msg) {
                    alert(msg);
                }
            });
        }
    }
});

我正在使用PHP,但我不熟悉使用JSON。有没有办法在我的PHP文件中为“response.d”返回true值:

success: function (response) {
    var _id = response.d;
}

这是我的逻辑,但不知道要使用的代码:

$lastname = isset($_REQUEST['lastName'])?$_REQUEST['lastName']:'';
$firstname = isset($_REQUEST['firstName'])?$_REQUEST['firstName']:'';
$middlename = isset($_REQUEST['middleName'])?$_REQUEST['middleName']:'';
$response = array();
mysql_connect ("localhost", "root") or die ('Error: ' . mysql_error());
mysql_select_db ("healthpal");

$query = "SELECT Lastname, Firstname, MiddleName FROM db_patients WHERE Lastname = '$lastname' || Firstname = '$firstname' || MiddleName = '$middlename'";

$qrytest = mysql_query($query);
if (isset($qrytest)) {
    //"response.d" will be true if the query return  not NULL
}

3 个答案:

答案 0 :(得分:0)

尝试这样的事情:

header('Content-type: application/x-json');
echo json_encode( array( 'd' => true ) );

答案 1 :(得分:0)

你需要的是php json_encode函数:

json_encode(array('response'=>'true')));

答案 2 :(得分:0)

你必须在你的PHP文件中构造JSON字符串,有点像这样

     {"result":"true"}

这个构造的JSON字符串应该作为PHP响应返回。在Javascript中将JSON解析为,

var obj = eval(response)
if(obj.result == 'true'){
    //Do your code here
}