2014-10-14 3 views
6

Как передать идентификатор из этого вызова ajax функции TestAontroller getAjax()? Когда я делаю вызов URL-адрес является testUrl? Метод ID = 1Laravel передает данные с помощью ajax на контроллер

Route::get('testUrl', '[email protected]'); 

<script> 
    $(function(){ 
     $('#button').click(function() { 
      $.ajax({ 
       url: 'testUrl', 
       type: 'GET', 
       data: { id: 1 }, 
       success: function(response) 
       { 
        $('#something').html(response); 
       } 
      }); 
     }); 
    });  
</script> 

TestController.php

public function getAjax() 
{ 
    $id = $_POST['id']; 
    $test = new TestModel(); 
    $result = $test->getData($id); 

    foreach($result as $row) 
    { 
     $html = 
       '<tr> 
       <td>' . $row->name . '</td>' . 
       '<td>' . $row->address . '</td>' . 
       '<td>' . $row->age . '</td>' . 
       '</tr>'; 
    } 
    return $html; 
} 

ответ

8

В конце концов, я просто добавил параметр маршрута :: Get() и в Ajax URL-адрес вызова тоже. Я изменил $ _POST [ 'ID'] до $ _GET [ 'ID'] в функции getAjax(), и это получил мой ответ назад

Route::get('testUrl/{id}', '[email protected]'); 

<script> 
    $(function(){ 
     $('#button').click(function() { 
      $.ajax({ 
       url: 'testUrl/{id}', 
       type: 'GET', 
       data: { id: 1 }, 
       success: function(response) 
       { 
        $('#something').html(response); 
       } 
      }); 
     }); 
    });  
</script> 

TestController.php

public function getAjax() 
{ 
    $id = $_GET['id']; 
    $test = new TestModel(); 
    $result = $test->getData($id); 

    foreach($result as $row) 
    { 
     $html = 
       '<tr> 
       <td>' . $row->name . '</td>' . 
       '<td>' . $row->address . '</td>' . 
       '<td>' . $row->age . '</td>' . 
       '</tr>'; 
    } 
    return $html; 
} 
6

Ваш Аякса является GET, но в контроллере использовать $ _POST, чтобы получить значение. Это проблема.

Вы можете вы

$id = $_GET['id']; 

Но в Laravel, он имеет довольно способ сделать это. Это here. Вам не нужно беспокоиться о HTTP-глаголе, используемом для запроса, так как вход доступен одинаково для всех глаголов.

$id = Input::get("id"); 

Если вы хотите, вы можете выбрать тип запроса для исключения исключений. Docs here

Определение Если запрос с помощью AJAX

if (Request::ajax()) 
{ 
    // 
} 
+0

Не мне нужно указать маршрут для URL-адреса в вызове $ .ajax? – learntosucceed

+0

$ .ajax или $ .post в этом случае одинаковы –

Смежные вопросы