Я написал свой первый вызов AJAX на прошлой неделе и заставил его работать, но сейчас я пишу другой вызов AJAX и мне нужно получить доступ к возвращенным данным, а не просто что-то изменить вSuccess.
<script type="text/javascript">
function showMessage(jobid) {
let result;
new Request.JSON({
url: '<?php echo site_url('job/getDiscrepancyByJobId/'); ?>/' + jobid,
dataType: 'text',
onSuccess: function(data) {
console.log(data);
}
}).send();
}
</script>
Когда скрипт выше вызывается, я ничего не получаю на консоль. Я попытался сделать это:
<script type="text/javascript">
function showMessage(jobid) {
let request = new XMLHttpRequest();
request.open('GET', '<?php echo site_url('job/getDiscrepancyByJobId'); ?>/' + jobid, true);
request.onload = function() {
if (this.status >= 200 && this.status < 400) {
console.log('data: ' + JSON.stringify(this.response));
} else {
// Error
}
};
request.send();
}
</script>
, но просто выводит data: ""
на консоль.
Эта функция называется:
public function getDiscrepancyByJobId($jobid) {
return $this->MJob->getJobChangeLog($jobid);
}
И MJob-> getJobChangeLog ($ jobid):
function getJobChangeLog($jobid, $limit = 10) {
if (empty($jobid)) {
return false;
}
$Q = $this->read_db->query('select timestamp, ifnull(t.name, ifnull(u.name, "")) as name, uri, description, postdata, marginchange
from jobchangelog l
left join user u on u.id=l.userid
left join transcriber t on t.id=u.transcriberid
where jobid=' . intval($jobid) . '
order by timestamp desc
limit ' . intval($limit));
return array_map(function($a){ $a['postdata'] = @unserialize($a['postdata']); return $a; }, $Q->result_array());
}
Информация, которую я ищу, находится в части @unserialize($a['postdata'])
, и я тоже не знаю, как получить к ней доступ.
Любая помощь будет отличной. Заранее благодарю за терпение.