Javascript array_key_exists()要求参数2为数组,给定null

Javascript array_key_exists()要求参数2为数组,给定null,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在一个名为edit_flow.php的控制器中有一个函数loadNotes 我在呈现页面时调用上述函数 我的JavaScript $(document).ready(function() { loadNotes(); }); function loadNotes() { var data = '{"subject_id":'+subject_id+',"teacher_id":'+teacher_id+'}'; ajaxRequest(data, 'loadNotes',

我在一个名为edit_flow.php的控制器中有一个函数loadNotes

我在呈现页面时调用上述函数

我的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的代码为:

问题指向控制器edit_flow.php,但即使在调试之后似乎也无法解决。控制台输出错误,而不是对象本身

感谢您的帮助。

试试这个

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
}

检查第二个参数是否为数组。 必须将一个数组传递到方法array\u key\u exists的第二个参数中

该方法的参数:

钥匙 要检查的值。 大堆
带有要检查的键的数组。

我猜您可以通过GET调用方法并使用POST来检索数据&因此对象为NULL.var data='0{subject\u id:看起来不对,为什么是字符串?您的$object被分配了空值,所以数组\u key\u存在函数读取数组为空,这就是为什么会出现错误shown@deceze跟踪bug是从经验中学到的东西,不要因为某人被代码卡住而责怪他,这不是问题的全部吗?为什么人们会如此轻易地对它投反对票给出一个解释。他给了我们一个非常合理的问题,包括他的代码和错误。帮帮他!从$this->input->postinputJson行开始;似乎在将代码修改为$this->input->getinputJson之后,您使用posit重试仍然抛出相同的错误,True您可以使用print\r$thi打印$this->input变量吗s->input;它输出json结果:{subject\u id:1234,teacher\u id:111}这是在运行$this->response$this->input->get'inputJson'之后的结果,因为json是作为参数在…/edit\u flow/loadNotes?inputJson={}中传递的
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}
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);
   }
}
function loadNotes() {
   var data = '{"subject_id":'+subject_id+',"teacher_id":'+teacher_id+'}';
   ajaxRequest(data, 'loadNotes', 'POST');   // POST request on loadNotes
}