通过ajax将数组传递给控制器
因此,我使用AJAX向控制器发送一个数组 阿贾克斯 模型 我已经做了硬编码,可以确认控制器和模型功能正常工作。我认为问题在于ajax中的“data”参数。我只是不相信数据是以正确的方式传递给控制器的。我不断地搜索其他问题,我知道也有类似的问题,但我还没有找到解决办法通过ajax将数组传递给控制器,ajax,codeigniter,post,Ajax,Codeigniter,Post,因此,我使用AJAX向控制器发送一个数组 阿贾克斯 模型 我已经做了硬编码,可以确认控制器和模型功能正常工作。我认为问题在于ajax中的“data”参数。我只是不相信数据是以正确的方式传递给控制器的。我不断地搜索其他问题,我知道也有类似的问题,但我还没有找到解决办法 提前感谢您提供的任何信息:)您必须在控制器中回送JSON编码的数据,而不是返回它。在Ajax回调中,必须在调用$之前JSON.parse()结果 控制器 function getValues(){ $playlist = $
提前感谢您提供的任何信息:)您必须
在控制器中回送JSON编码的数据,而不是返回它。在Ajax回调中,必须在调用$之前JSON.parse()
结果
控制器
function getValues(){
$playlist = $this->input->post('course');
$this->load->model('get_db');
$data = $this->get_db->getAll($playlist);//$var inside ()
echo json_encode($data);
// $this->output->set_content_type('application/json');
// $this->output->set_output(json_encode($data));
// return $data;
}
Ajax调用
$.ajax({
url: 'http://localhost:8888/index.php/trial/getValues',
type:'POST',
dataType: 'json',
data: course,
error: function(){
$('#testing1').append('<p>goodbye world</p>');
},
success: function(result) {
var htmlStr = '';
var jsonData = JSON.parse(result);
$.each(jsonData, function(a, b){
htmlStr += b.qText + '<br />';
});
alert("YEAH YOU WAS SUCCESSFUL");
$('#testing1').append(htmlStr);
}
$.ajax({
网址:'http://localhost:8888/index.php/trial/getValues',
类型:'POST',
数据类型:“json”,
数据:当然,
错误:函数(){
$(“#testing1”)。追加(“再见世界””;
},
成功:功能(结果){
var htmlStr='';
var jsonData=JSON.parse(结果);
$.each(jsonData,function(a,b){
htmlStr+=b.qText+'
';
});
警惕(“是的,你成功了”);
$('#testing1').append(htmlStr);
}
首先尝试将其编码为JSON。我不确定这是否是必需的,但这可能会使事情变得更简单。我将如何以及在何处这样做我不确定是否遗漏了某些内容,但根据您的代码,模型正在查询中这样做:。其中playlist=array(1,2,3)
。您是否应该使用其他codeigniter函数,如where_in
或首先提取数组?@ISuthanBala是的,请参阅编辑我也看到,您在控制器中返回数据,而不是回显。只显示回显数据并返回到ajax调用嘿,感谢您的响应。因此,当我集成此代码时,我得到了“未捕获的语法错误:意外标记o”错误。我还担心,当我进行硬编码以确保控制器和模型工作时,我使用的数组是一个php数组。但是,现在我正在尝试发送一个javascript数组。我想知道这是否会干扰我所做的php编码。这可能是由“$data”的内容引起的(解析时)。也许你可以提供更多的信息,或者更好的是提供一个测试站点/小提琴,我可以在那里查找错误。result的内容也会很有帮助。哦,如果你没有对set_content_type(..)进行注释,那么你可能不能在客户端解析可能与错误消息相符的结果。
class Get_db extends CI_Model{
function getAll($pList){
$query=$this->db->query("SELECT * FROM questions WHERE playlistID= '$pList[0]' OR playlistID='$pList[1]'");
return $query->result();
}
}
function getValues(){
$playlist = $this->input->post('course');
$this->load->model('get_db');
$data = $this->get_db->getAll($playlist);//$var inside ()
echo json_encode($data);
// $this->output->set_content_type('application/json');
// $this->output->set_output(json_encode($data));
// return $data;
}
$.ajax({
url: 'http://localhost:8888/index.php/trial/getValues',
type:'POST',
dataType: 'json',
data: course,
error: function(){
$('#testing1').append('<p>goodbye world</p>');
},
success: function(result) {
var htmlStr = '';
var jsonData = JSON.parse(result);
$.each(jsonData, function(a, b){
htmlStr += b.qText + '<br />';
});
alert("YEAH YOU WAS SUCCESSFUL");
$('#testing1').append(htmlStr);
}