У меня есть пользовательские рамки, такие как CodeIgniter.
Я использую Ajax для получения данных из базы данных, но у меня есть это сообщение: "преобразование массива в строку" .
В чем причина и как я могу решить это эхо?
контроллер
public function getallserials()
{
if(isset($_POST['action'],$_POST['notebook_id'],$_POST['resseler_id'],$_POST['pos_id'])&&$_POST['action']=="getserial")
{
$allNoteBookSerials=$this->loadModel("NotebookRessellerDetails")->retrieveAllData("where `deleted`=? and `notebook_id`=? and `id_resseller`=? ",array(1,$_POST['notebook_id'],$_POST['resseler_id']));
$addedSerialToPos=$this->loadModel("PosNotebookSerialsModel")->retrieveAllData("where `deleted`=? and `notebook_id`=? and `resseler_id`=? ",array(1,$_POST['notebook_id'],$_POST['resseler_id']));
if(is_array($addedSerialToPos))
{
// get serials only
foreach ($addedSerialToPos as $key => $value):
$RegisterdSerials[$key] =$value['serial'];
endforeach;
}
if(is_array($allNoteBookSerials))
{
if(is_array($allNoteBookSerials)&&is_array($RegisterdSerials))
{
//$x=array_values(array_diff($RegisterdSerials,$allNoteBookSerials)) ;
$x=array_diff($RegisterdSerials,$allNoteBookSerials) ;
$response['status']="success";
$response['x']=(isset($x))?$x:null;
echo $this->loadAjax()->DataToJson($response);
exit();
}
}
}
}
Мой код Ajax
$("body").on("change","#notebook_id",function () {
var notebook_id=$(this).val()
var pos_id=$("#pos_id").val();
var resseler_id=$("#resseler_id").val();
var action="getserial";
// start ajax
$.ajax({
url: "<?php echo BASE_URL.'PosNoteBookserials/getallserials' ?>",
method:"post",
data:{notebook_id:notebook_id,pos_id:pos_id,resseler_id:resseler_id,action:action},
beforeSend:function(){
},
statusCode: {
404: function() {
alert( "page not found" );
},
},
success:function (data) {
/*
var text='';
var result = jQuery.parseJSON(data);
if(result['status']=="success")
{
for (i=0;i<result['allNoteBookSerials'].length;i++)
{
text+='<label class="label label-success">'+result['allNoteBookSerials'][i]['serial']+'</label>';
$("#res").html(text);
}
}else{
}
*/
/*
*/
alert(data);
var text='';
var result = JSON.parse(data);
if(result['status']=="success")
{
for (i=0;i<result['x'].length;i++)
{
text+='<label class=" label label-success">'+result['x'][i]+'</label>';
$("#res").html(text);
}
}else{
}
}
})
Когда я отправляю запрос, я получаю ответ x с правильными данными в виде массива, но в строке, содержащей этот код, появляется ошибка «преобразование массива в строку» .