Intereting Posts
Модифицированное правило исключения для URL-адреса в качестве параметра Мой последний mysql db, может кто-нибудь проверить, правильно ли сделаны таблицы? index.php не открывается и не запускается при загрузке файла Как получить доступ к моему Wamp Server на другом локальном компьютере отображать изображение с сервера встраивание php в html Примечание. Неверно сформированное числовое значение, встречающееся в C: \ xampp \ htdocs \ Space \ Find \ index.php в строке 21 что-то не так с моим заголовком (Location) Массив поиска PHP в массиве как получить значение кнопки отправки, которое находится в цикле while, используя метод post Очень быстрая хэш-функция для хэширования 8-16-байтных строк Захват символов linebreaks (newline, linefeed) в текстовом поле PHP_INT_SIZE возвращает 4, но моя операционная система 64-битная Электронная почта Php, отправленная с вопросами по темам в Outlook только Почему PHP XPath не находит элементы таблицы, хотя Firefox показывает, что они существуют? есть ли простой способ избежать создания всех папок

Как я могу вернуть представление из вызова ajax в Laravel 5

Я пытаюсь получить таблицу html для возврата по вызову ajax.

маршрут:

Route::post('job/userjobs', 'JobController@userjobs'); 

ajax на странице вызова:

 function getUserJobs(userid) { $_token = "{{ csrf_token() }}"; var userid = userid; $.ajax({ headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }, url: "{{ url('/job/userjobs') }}", type: 'POST', cache: false, data: { 'userid': userid, '_token': $_token }, //see the $_token datatype: 'html', beforeSend: function() { //something before send }, success: function(data) { console.log('success'); console.log(data); //success //var data = $.parseJSON(data); if(data.success == true) { //user_jobs div defined on page $('#user_jobs').html(data.html); } else { $('#user_jobs').html(data.html + '{{ $user->username }}'); } }, error: function(xhr,textStatus,thrownError) { alert(xhr + "\n" + textStatus + "\n" + thrownError); } }); } //on page load getUserJobs("{{ $user->id }}"); 

контроллер:

 public function userjobs() { $input = Request::all(); if(Request::isMethod('post') && Request::ajax()) { if($input['userid']) { $userjobs = Userjob::select('select * from user_jobs where user_id = ?', array($input['userid'])); if(! $userjobs) { return response()->json( array('success' => false, 'html'=>'No Jobs assigned to ') ); } $returnHTML = view('job.userjobs')->with('userjobs', $userjobs); return response()->json( array('success' => true, 'html'=>$returnHTML) ); } } } 

Посмотреть:

 @section('content') <table class="table table-striped"> <tbody> @foreach ($userjobs as $userjob) <tr> <td><strong>{{ $userjob->title }}</strong><br /> {{ $userjob->description }} </td> </tr> @endforeach </table> @stop 

Я не получаю ничего в данных json.html. ничего. Если в контроллере я говорю:

 return response()->json( array('success' => true, 'html'=>'<span>html here</html>') ); 

Это прекрасно работает.

Как я могу вернуть представление из вызова ajax в Laravel 5.

Функция view() просто создает экземпляр класса View . Не только HTML-строка. Для этого вы должны вызвать render() :

 $returnHTML = view('job.userjobs')->with('userjobs', $userjobs)->render(); return response()->json(array('success' => true, 'html'=>$returnHTML)); 

используйте функцию строки перед именем файла вида, например, как

 return (String) view('Company.allUserAjax'); 

если ваш аякс правильный, и вы получаете результаты от своей БД

  $returnHTML = view('job.userjobs',[' userjobs'=> $userjobs])->render();// or method that you prefere to return data + RENDER is the key here return response()->json( array('success' => true, 'html'=>$returnHTML) ); 

Хорошо. Я обнаружил, что с помощью проб и ошибок вы не указали команды шаблона клинка в файле вида, чтобы это работало.

Я имел:

 @section('content') <table class="table table-striped"> <tbody> @foreach ($userjobs as $userjob) <tr> <td><strong>{{ $userjob->title }}</strong><br /> {{ $userjob->description }} </td> </tr> @endforeach </table> @stop 

и теперь он работает с:

 <table class="table table-striped"> <tbody> <?php foreach ($userjobs as $userjob){?> <tr> <td><strong><?php echo $userjob->title; ?></strong><br /> <?php echo $userjob->description; ?> </td> </tr> <?php } ?> </table> 

Altho я искал – я никогда не нашел документацию, в которой говорится об этом.

удалите это условие if и посмотрите, работает ли оно

 if(Request::isMethod('post') && Request::ajax()) { 

idk, если вы все еще ищете ответ, но я столкнулся с тем же вопросом, что и вы, он продолжал возвращать пустое. ключ к успеху состоял в том, чтобы удалить часть @section @endsection в частичном представлении