2013-04-24 36 views
0

好的,所以我使用cakephp 1.2,jQuery和ajax與JSON的組合。這是我在做什麼:在Jquery中使用JSON數據填充文本框

當一個人輸入一個員工ID,我得到該員工ID的結果,如果有的話,我把它作爲$javascript->object(empInfo)發回。這工作正常。我將這些信息返回給函數,但似乎無法處理它。我讀過的所有內容都表示將它用作$.each(empInfo, function()。這裏是我的代碼:

COMMON.JS

$(document).ready(function() { 
$('#emp_num').blur(function() { 
     if($(this).val().length != 0) { 
      $.ajax({ 
       type: "POST", 
       datatype: "json", 
       url: '/ir_employees/getdetails/empId:' + $(this).val(), 
       success: function(empInfo) { 
        populateEmployeeInformation(empInfo); 
       } 
      }); 
     } 
    }); 
}); 

function populateEmployeeInformation(empInfo) { 
    $.each(empInfo, function() { 
     console.log(this); 
    }); 
} 

EMPLOYEES_CONTROLLER.PHP

function getdetails() { 
    $empId = $this->passedArgs['empId']; 
    $this->layout = 'ajax'; 
    $this->set('empInfo', $this->IrEmployee->find('all', 
         array('conditions' => 
           array('IrEmployee.employee_number' => $empId)))); 

} 

GETDETAILS.CTP

<?php 
    if((isset($empInfo))){ 
     echo $javascript->object($empInfo); 
    } 

?> 

當我登錄時,我得到以下(截圖):

JSON Screen Capture

我怎樣才能正確地使用下面的信息(這是來自螢火蟲的「迴應」):

[{"IrEmployee":{"id":"1","employee_number":"xxxxx","last_name":"Doe","first_name":"John","gender":"M","date_hired":"2013-04-09","date_of_birth":"1950-01-01","plant_id":"0"}}] 
+0

爲什麼喊首都到處? 「EMPLOYEES_CONTROLLER.PHP」多數錯誤作爲文件名... – mark 2013-04-24 15:18:20

+0

我使用全部大寫作爲我使用的定義。這不是實際的文件名稱。文件名是employees_controller.php。我希望它脫穎而出。感謝你的關心。 – webdevsoup 2013-04-24 15:37:44

+0

好吧,別!它只會分散眼前的問題。 – mark 2013-04-24 15:41:48

回答

1

您的回覆被作爲一個字符串返回(的console.log顯示你通過循環字符串的每個字符),並且不被解析爲JSON。

我認爲這是因爲你有datatype而不是dataType(注意大寫字母T)在jQuery AJAX選項中。如果你解決這個問題,jQuery應該爲你自動解析JSON。

或者,您可以將字符串傳遞到JSON.parse(如果存在的話,如果不是你應該polyfill

+0

愚蠢的錯別字...將它改爲'dataType'而不是'datatype'給我我要找的結果。非常感謝你。我會盡可能接受答案。 – webdevsoup 2013-04-24 14:53:48