当我从dropdownbox中选择值时,我想执行多个操作,因为我在larvel中使用ajax。我的问题是,当我选择下拉列表值时,它会通过ajax传递,从ajax它调用控制器基于我想要的从数据库中获取所需的字段,但是ajax不会返回任何成功结果。这是我的代码。
查看
{{ Form::select('asset_type_id', $assettype_list,
Input::old('asset_type_id', $assetdetail->asset_type_id), array('class'=>'select2','id'=>'asset_type_id', 'style'=>'width:350px')) }}
AJAX
$(document).ready(function() {
$("#asset_type_id").change(function() {debugger;
// alert($('#asset_type_id option:selected').val());
var data=$('#asset_type_id option:selected').val()
$.ajax({
type: 'POST',
url: '/Controllers/Admin/AssetdetailsController',
data: data,
cache: false,
success: function(data)
{
check(data);
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
}
});
});
});
控制器
public function postPositions($data)
{
if (Request::ajax())
{
$positions = DB::table('asset_types')->select('is_nesd')->where('id', '=', $data)->get();
return $positions;
}
}
路线
Route::post('Controllers/Admin', [usesu'Controllers\Admin\AssetdetailsController@postPositions');
答案 0 :(得分:1)
在 ajax 中,尝试更改网址:
$(document).ready(function() {
$("#asset_type_id").change(function() {debugger;
// alert($('#asset_type_id option:selected').val());
var data=$('#asset_type_id option:selected').val()
$.ajax({
type: 'POST',
url: '{{ URL::route('post_form') }}',
data: data,
cache: false,
success: function(data)
{
check(data);
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
}
});
});
});
以路线(请参阅Laravel 4 Docs)
Route::post('Controllers/Admin', array('uses' => 'Controllers\Admin\AssetdetailsController@postPositions', 'as'=>'post_form'));
<强>更新强>
要使用控制器解决错误,请尝试以下操作:
public function postPositions()
{
if (Request::ajax())
{
$data = Input::get('form_data');
$positions = DB::table('asset_types')->select('is_nesd')->where('id', '=', $data)->get();
return $positions;
}
}
JS代码:
$(document).ready(function() {
$("#asset_type_id").change(function() {debugger;
// alert($('#asset_type_id option:selected').val());
var f_data=$('#asset_type_id option:selected').val(); // changed
$.ajax({
type: 'POST',
url: '{{ URL::route('post_form') }}',
data: { form_data: f_data }, // changed
cache: false,
success: function(data)
{
check(data);
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
}
});
});
});
答案 1 :(得分:0)
您可能需要将网址更改为网址:&#39; / Controllers / Admin&#39;。
因为您将Route作为控制器/管理员。
答案 2 :(得分:0)
查看:
{{ Form::open(array('url' => 'crud', 'method' => 'get', 'id' => 'myform', 'name' => 'myform')) }}
{{ Form::select('application',$download_options, Input::get('application'),$options = array('id' => 'application', 'class' => 'application')) }}
{{ Form::label('date', 'date', array('id' => 'date_label')); }}
{{ Form::select('date', $options = array('id' => 'date', 'class' => 'date')) }}
{{ Form::submit('Display', array('class' => 'btn btn-small btn-info', 'id' => 'submit')) }}
{{ Form::close() }}
<script>
$(document).ready(function($) {
$('#application').change(function(e){ // e=event
var application = $('#application option:selected').val();
$.getJSON('/getdata/'+application, function(data){
$('select#date').html('$'+data);
});
});
});
</script>
路线:
Route::get('getdata/{application}', function($application){
$selectboxtwo = DB::table('downloads')
->where('application', '=',$application)
->groupBy('date')
->lists('date');
return $selectboxtwo;