这是我的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>";
}
答案 0 :(得分:0)
您正在发送帖子请求,但是您在路线上使用了get,您需要将type
更改为get
,这对于记录任何错误也很有用,请尝试:< / p>
<script type="text/javascript">
function retrieve(){
var country = $('#country_name').val();
$.ajax({
type: "get",
url: '{{route('dataAjax-country')}}',
data: {country:country},
success: function(result){
$('#ajaxtable').html(result);
},
error: function(result){
console.log(result);
}
});
}
</script>
答案 1 :(得分:0)
有几点,您正在尝试POST到已定义为GET路由的控制器。以下应该有效
<script type="text/javascript">
function retrieve(){
var country = $('#country_name').val();
$.ajax({
type: "GET",
url: '/asd',
data: {country:country},
success: function(result){
$('#ajaxtable').html(result);
}
});
}
您需要将<tbody>
insde包裹为<table>
我改变了这个,因为路线没有用url: '{{route('dataAjax-country')}}',
答案 2 :(得分:0)
在浏览器中使用开发者控制台非常有用,并检查服务器返回的错误。很可能,从上面的代码中,是错误的路由方法(它是为GET定义的,但是您通过AJAX发送了POST请求),以及您没有使用您的数据发送会话令牌这一事实。虽然它有点老,但本文应该可以帮助您开始使用Laravel和AJAX:Using AJAX in Laravel