2011-11-21 91 views
-1

我的一個朋友給了我這個片段的js文件,可對我來說是有用的:返回值以JSON/AJAX

$.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 
} 
+0

感謝您的幫助。已經使代碼工作。 我現在的問題是如何在我的php文件中發佈我的Json數據。 類似於: $ var = $ _POST ['jsondata1']; //該變量將具有Json數據的值1 我在嘗試json_decode();還有 isset($ _ REQUEST ['lastName'])?$ _ REQUEST ['lastName']:''; 但沒有奏效。 任何幫助將真正被讚賞。謝謝.. –

回答

0

試着這麼做這樣的:

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

你需要的是PHP的json_encode函數:

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

謝謝。我感謝您的幫助。我已經使用它來返回'response.d'的真實值。在我的PHP文件,它的工作原理。但我真正的問題是,它不適用於上面的js代碼片段。即時通訊使用螢火蟲看看發生了什麼,它似乎有一個錯誤。再次感謝。 –

0

你必須構建在PHP文件的JSON字符串,一些這樣的事

 {"result":"true"} 

這種構造JSON字符串應該返回爲PHP響應。在Javascript解析JSON爲,

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

感謝您的幫助。就像你說的,我的php文件已經返回值{「result」:「true」}。但是當JSON在Javascript中解析時,似乎沒有任何反應,並且在FIREBUG控制檯上返回錯誤。希望你也可以幫助我。 –