我正在尝试使用jquery .load()
函数将数组传递给我的CI控制器,但是我收到了这个错误:
A PHP Error was encountered
Severity: Warning
Message: Missing argument 1 for QuestionQueue::update()
Filename: controllers/QuestionQueue.php
Line Number: 27
Backtrace:
File: D:\software\wamp\www\Quiz\application\controllers\QuestionQueue.php
Line: 27
Function: _error_handler
File: D:\software\wamp\www\Quiz\index.php
Line: 292
Function: require_once
我的观看代码:
$(".sortable").sortable({connectWith: '.js-connected'}).bind('sortupdate', function(e, ui) {
var roundSize = document.getElementById("roundqs").getElementsByTagName("li").length;
var data = new Array();
for (i = 0; i < roundSize; i++) {
data[i] = $('#roundqs li')[i].id;
}
var p = {};
p['rId'] = <?php echo $roundRow->roundId; ?>;
p['questions'] = data;
$(this).load("http://<?php echo base_url();?>questionQueue/update/",p);
});
我的控制器代码:
public function update($data)
{
$questionArray = $data->questions;
$rId = $data->rId;
$this->load->model('QuestionQueueModel');
for ($i=0;$i<$questionArray.length;$i++){
$this->QuestionQueueModel->updateOrAddQuestionInQueue($questionArray[$i],$rId,$i + 1);
}
}
我对这个CodeIgniter框架很新,所以它可能是一个愚蠢的错误,但我似乎无法找到它。
任何人都知道造成这种情况的原因是什么?
答案 0 :(得分:0)
似乎您尝试传递给控制器函数update()
的数据未被发送,因此缺少参数消息。
为什么不尝试使用ajax
调用来将数据发送到控制器....
像这样:
$.ajax({
dataType: "json",
data: {
'data' : p,
},
url : 'questionQueue/update',
success : function (data) {
// do success handling
},
error : function (jqXHR, textStatus) {
// do error handling
},
});
您可能需要将ajax
URL更改为系统所需的URL,在我的CI中已经设置了基本URL,因此我只需调用控制器然后调用该函数。