2011-11-21 66 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控制台上返回错误。希望你也可以帮助我。 –