Comment passer l'ID de cet appel ajax à la fonction getAjax () de TestController? Quand je fais l'appel, l'url est testUrl? Id = 1
Route::get('testUrl', 'TestController@getAjax');
<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;
}
En fin de compte, je viens d'ajouter le paramètre à Route :: get () et à l'appel d'url ajax aussi. J'ai changé $ _POST ['id'] en $ _GET ['id'] dans la fonction getAjax () et ma réponse a été renvoyée
Route::get('testUrl/{id}', 'TestController@getAjax');
<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;
}
La méthode de votre ajax est GET mais dans le contrôleur, vous utilisez $ _POST pour obtenir de la valeur. C'est un problème.
Vous pouvez vous
$id = $_GET['id'];
Mais à Laravel, il a une jolie méthode pour le faire. C'est ici . Vous n'avez pas à vous soucier du verbe HTTP utilisé pour la requête, car l'entrée est accessible de la même manière pour tous les verbes.
$id = Input::get("id");
Si vous le souhaitez, vous pouvez filtrer le type de demande pour contrôler l'exception. Documents ici
Déterminer si la demande utilise AJAX
if (Request::ajax())
{
//
}