Я хочу ответить на данные из контроллера в AJAX как массив, но он продолжает показывать эту ошибку:
json_encode () ожидает, что параметр 2 будет целым числом, объект задан
следующий мой код:
function get_show(Request $request)
{
$id = $request->input('id');
$leads = Lead::find($id);
$leads_attendances = DB::table('event_attendances')
->leftJoin('leads', 'leads.id', '=', 'event_attendances.lead_id')
->leftJoin('groups', 'groups.id', '=', 'event_attendances.group_id')
->select('groups.name as event_name', 'leads.name as name', 'leads.company_name', 'event_attendances.attend as attend_status')
->where('event_attendances.lead_id', '=', $id)
->get()->toArray();
$output = array(
'id' => $id,
'country' => $leads->country,
'company_name' => $leads->company_name,
'lead_stage' => $leads->lead_stage
);
echo json_encode($output,$leads_attendances);
}
Это мой код AJAX:
$.ajax({
url: "{{route('main.get_show')}}",
method: 'get',
data: {id: id},
dataType: 'json',
success: function (response) {
console.log(response);
$('#model2').modal('show');
document.getElementById('leads').innerHTML += response.output.company_name;
document.getElementById('leads').innerHTML += response.leads_attendances;
Новая ошибка:
приводит: 7515 Uncaught ReferenceError: ведет_средства не определены
в Object.success (ведет: 7515)
в i (jquery.min.js: 2)
в Object.fireWith [as resolWith] (jquery.min.js: 2)
в z (jquery.min.js: 4)
на XMLHttpRequest. (jquery.min.js: 4) * * 1016
Выходной отклик инспекта:
{ "выход": { "ID": "25", "страна": "", "company_name": "comp1", "lead_stage": "под"}, "leads_attendances": [{ "EVENT_NAME" : "event1", "имя": "LEMUN", "company_name": "comp1", "attend_status": "Да"}, { "event_name": "event2", "имя": "ZDMJ", "company_name" : "comp1", "attend_status": "Да"}, { "event_name": "event3", "имя": "MNAl", "company_name": "comp1", "attend_status": "Да"}, {» event_name ":" событие " "имя": "Khalai", "company_name": "comp1", "attend_status": "Да"}, { "event_name":" event4
», "Имя": "Замель", "company_name": "COMP1", "attend_status": "Да"}]}
Сборка таблицы в JS:
success: function (response) {
console.log(response);
$('#myModaleee').modal('show');
var leads_attendances=response.leads_attendances;
document.getElementById('lead_details').innerHTML += '<table>';
for(var i=0;i<leads_attendances.length;i++){
var event_name=leads_attendances[i].event_name;
var name=leads_attendances[i].name;
var company_name= leads_attendances[i].company_name;
var attend_status= leads_attendances[i].attend_status;
document.getElementById('lead_details').innerHTML += '<tr>'+
'<td>'+event_name+'</td>'+
'<td>'+name+'</td>'+
'<td>'+company_name+'</td>'+
'<td>'+attend_status+'</td>'
+'</tr>';
}
document.getElementById('lead_details').innerHTML += '</table>';
}
Первый массив ($ output) прошел и хорошо работает с Ajax, но во второй коллекции эта ошибка показана. Мне все еще нужно передать больше, чем эти коллекции, какая-нибудь помощь, как передать это и заставить его работать с Ajax?
Спасибо