这是我的ajax代码 . 我想在文本框中键入内容,数据库的结果应显示在表格中 .
<script type="text/javascript">
function retrieve(){
var country = $('#country_name').val();
$.ajax({
type: "POST",
url: '{{route('dataAjax-country')}}',
data: {country:country},
success: function(result){
$('#ajaxtable').html(result);
}
});
}
</script>
但是当我在文本框中输入时数据没有改变 . 我有一个文本框和一个像这样的表:
{!! Form::text('country_name', '', array('id'=>'country_name', 'onkeyup'=>'retrieve()')) !!}
<tbody id="ajaxtable">
@foreach($results as $result)
<tr>
<td>{{$result->id}}</td>
<td>{{$result->country_name}}</td>
</tr>
@endforeach
</tbody>
这是我的路线代码,也许我的路线不足?:
Route::get('asd', array(
'as' => 'dataAjax-country', 'uses' => 'CompaniesController@dataAjaxCountry'));
我的控制器包含将在表格中显示的AJAX脚本:
public function dataAjaxCountry()
{
echo "<tr><td>asdsad</td></tr>";
}
3 回答
您正在发送一个帖子请求,但是您在路线上使用了get,您需要将
type
更改为get
,这对记录任何错误也很有用,请尝试:有几点,您正在尝试POST到已定义为GET路由的控制器 . 以下应该有效
你需要包装
<tbody>
insde<table>
因为路线不起作用我改变了这个
url: '{{route('dataAjax-country')}}',
在浏览器中使用开发人员控制台非常有用,并检查服务器返回的错误 . 很可能,从上面的代码中,是错误的路由方法(它有点旧,本文应该可以帮助您开始使用Laravel和AJAX:Using AJAX in Laravel