わかりましたので、cakephp 1.2、jquery、ajax と 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);
}
?>
ログに記録すると、次のようになります(スクリーンショット):
次の情報を適切に使用するにはどうすればよいですか (これは Firebug からの「応答」です)。
[{"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"}}]