2016-04-25 8 views
2

У меня есть вызов ajax, который отправляет некоторые идентификаторы одному из моих контроллеров.Извлечение данных из ajax-вызова в контроллере

jQuery, который работает для этого, в основном ищет элементы с ID, например notification-id-, а затем захватывает идентификаторы и сохраняет их в переменной JavaScript.

Когда я alert() или console.log() этой переменной она выводит значения, как 1,2 для двух уведомлений, которые у меня есть на странице notification-id-1 и notification-id-2.

Для моего AJAX вызова, я просто делаю ниже:

$.ajax({ 
    url: "{{ url('/notifications/read') }}", 
    method: "POST", 
    data: notifications, // Let jQuery handle packing the data for you 
    success: function(response) { 
     // The data was sent successfully and the server has responded (may have failed server side) 
    alert(notifications); 
    }, 
    error: function(xhr, textStatus, errorThrown) { 
     // AJAX (sending data) failed 
    }, 
    complete: function() { 
     // Runs at the end (after success or error) and always runs 
    } 
}); 

Я пытаюсь проверить, что мой контроллер получает, делая dd($request->all());, однако, что только возвращение:

array:1 [ 
    "undefined" => "" 
] 

(Вызов ajax действительно успешно завершен)

Как получить идентификационные значения, которые отправляются в этом вызове ajax внутри моего контроллера?

Edit: Full Script

<script type="text/javascript"> 
    $(document).ready(function() { 
    var count = $('#notification-counter'); 
    var new_notifications = $('#notification-new-counter'); 
    $('#notification-drop-down').on('click', function() { 
     count.empty(); 
     var notifications = $('[id^="notification-id-"]').map(function() { 
     return this.id.slice(16); 
     }).get(); 
     $.ajax({ 
      url: "{{ url('/notifications/read') }}", 
      method: "POST", 
      data: notifications, // Let jQuery handle packing the data for you 
      success: function(response) { 
       // The data was sent successfully and the server has responded (may have failed server side) 
       alert(notifications); 
      }, 
      error: function(xhr, textStatus, errorThrown) { 
       // AJAX (sending data) failed 
      }, 
      complete: function() { 
       // Runs at the end (after success or error) and always runs 
      } 
     }); 
    }); 
    }); 
</script> 
+0

Вы проверили запрос Ajax в своем браузере (инструменты разработчика Chrome и т. Д.)? Есть ли почтовые поля и исправлены? –

+0

Я использую '$ request-> input()' для этого ... Какова ценность 'уведомлений'? На вкладке «Сеть консоли браузера», какие параметры запроса отправляются в запросе? Когда вместо 'dd ($ output)' вы используете return 'Response :: json ($ output)' вы получаете разные результаты? – jcorry

+0

Я думаю, что вы не отправляете данные правильно – Sunil

ответ

1
$.ajax({ 
     url: "{{ url('/notifications/read') }}", 
     method: "POST", 
     data: {'notifications':notifications}, 
+1

Это работало как шарм. Спасибо Сунил! Теперь он показывает переменную уведомлений со значениями, которые отправляются - это именно то, что я был после! – James

+0

счастливая кодировка брата :) приветствия! – Sunil

0

Можете ли вы использовать следующую строку и скажите мне, что вы получите в контроллере? данные: {извещение: 2}. Если вы правильно это понимаете, то в исходном сообщении вы не отправляете уведомления правильно и ничего не получаете в контроллере.

+0

В этом ответе показаны «уведомления»: «2». Я выяснил, что я не отправляю их правильно, но я не уверен, как правильно их отправлять. – James

+0

можете ли вы напечатать значение с помощью ** console.log (уведомления) ** и дать мне значение. – Rumel