2014-02-21 32 views
1

我有一個控制器的功能loadNotes稱爲edit_flow.phparray_key_exists()預計參數2爲陣列,空給出

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 ,但似乎無法r即使在調試之後也能解決這個問題。控制檯輸出一個錯誤,而不是object本身。

任何幫助表示讚賞。

+2

我想你調用方法槽'GET'並使用'POST'來檢索數據,因此對象爲NULL。 – Rikesh

+0

'var data ='{「subject_id」:'看起來不正確,爲什麼是一個字符串? – elclanrs

+2

你的'$ object'被分配了空值,所以'array_key_exists'函數讀取的數組爲null,爲什麼顯示的錯誤爲 –

回答

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 
} 
+0

將代碼修改爲'$ this-> input-> get(((「inputJson」),true)後,它仍然會拋出相同的錯誤' – h4kl0rd

+0

您可以使用print_r打印$ this->輸入變量($ this-> input ); – SajithNair

+0

它輸出json結果:{「subject_id」:1234,「teacher_id」:111}'運行後$ this-> response($ this-> input-> get('inputJson'))' – h4kl0rd

-1

檢查,如果第二個參數是一個數組。 你必須數組傳遞到第二PARAM的方法array_key_exists()

參數的方法,包括:

鍵 值來檢查。 數組 帶有要檢查的鍵的數組。

相關問題