我在名为loadNotes
edit_flow.php
function loadNotes_get() {
$object = json_decode($this->input->post("inputJson"), true);
if (array_key_exists('subject_id', $object) && array_key_exists('teacher_id', $object))
{
$this->response($object);
}
}
我在渲染页面时调用上面的函数。
我的JavaScript
$(document).ready(function() {
loadNotes();
});
function loadNotes() {
var data = '{"subject_id":'+subject_id+',"teacher_id":'+teacher_id+'}';
ajaxRequest(data, 'loadNotes', 'GET'); // GET request on loadNotes
}
JavaScript函数ajaxRequest
的代码是:
function ajaxRequest(datum, method_url, request_type) {
var eurl = "<?php echo base_url(); ?>edit_flow/" + method_url;
var params = 'inputJson=' + datum;
var request = $.ajax({
type: request_type,
url: eurl,
data: params,
success: function(result) {
console.log('result: '+result);
console.log('data: '+params);
},
async: false
});
return request.responseText;
}
ajaxRequest
功能的控制台输出:
result: <div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: array_key_exists() expects parameter 2 to be array, null given</p>
<p>Filename: controllers/edit_flow.php</p>
<p>Line Number: 126</p>
</div>
data: inputJson={"subject_id":1234,"teacher_id":111}
问题指向控制器edit_flow.php
,但即使在调试它之后似乎也无法解决此问题。控制台输出错误而不是object
本身。
感谢任何帮助。
答案 0 :(得分:0)
试试这个
function loadNotes_get() {
$object = json_decode($this->input->get("inputJson"), true);
if (array_key_exists('subject_id', $object) && array_key_exists('teacher_id', $object))
{
$this->response($object);
}
}
或者将JS改为POST而不是GET
function loadNotes() {
var data = '{"subject_id":'+subject_id+',"teacher_id":'+teacher_id+'}';
ajaxRequest(data, 'loadNotes', 'POST'); // POST request on loadNotes
}
答案 1 :(得分:-1)
检查第二个参数是否为数组。 你必须将数组传递给方法array_key_exists()
的第二个参数方法的参数:
键 值得检查。 排列 带有要检查的键的数组。