无法从 Laravel 的下拉列表中保存 table 列值
Unable to save table column value from dropdown in Laravel
我正在使用 Laravel 7 和 PHP 7.4.
我正在尝试使用 ajax 在我的表单中创建依赖下拉列表。我在 ajax 响应中发送 column_id 和 列 到我的下拉菜单。我的下拉列表工作得非常好,但我的数据库查询或 ajax 响应出现混乱。我的下拉列表显示列的值,但是当我尝试保存到数据库时,它只保存列的“Id”而不是值。
我只是想将 column_id 和 列 都发送到我的下拉列表中,但只将值保存到数据库中。
Blade
<form action="{{route('form_for_private_sellers')}}>
<div class="form-group">
<select name="make" id="make" data-dependent="model">
<option value="">Select Make</option>
<option value="254">Abarth</option>
</select>
</div>
<div class="form-group">
<select name="model" id="model">
<option selected value="">Select Model*</option>
</select>
</div>
</form>
Javascript
$("#make").change(function()
{
var id=$(this).val();
var make_id = id;
var dependent = $(this).data('dependent');
var _token = $('input[name="_token"]').val();
$.ajax({
url:"{{ route('fetchModel') }}",
method:"POST",
data:{make_id:make_id, _token:_token,dependent:dependent},
success:function(result)
{
$('#'+dependent).html(result);
}
});
});
控制器
public function fetchModel(Request $request)
{
$get_make_id = $request->get('make_id');
$dependent = $request->get('dependent');
$fetch_model = DB::table('auto_databases_one')
->select('model','model_id')
->distinct()
->where('make_id', '=', $get_make_id)
->where(function ($query) {
$query->orWhere('is_active', '=', '1');
})
->orderBy('model', 'ASC')
->get();
$show_model = '<option value="">Select ' . ucfirst(dependent) . '</option>';
foreach ($fetch_model as $row) {
$show_model .= '<option value="' . $row->model_id . '">' . $row->model . '</option>';
}
echo $show_model;
}
public function form_for_private_sellers(Request $request)
{
$store_seller = new Sellers();
$store_seller->make = $request['make'];
$store_seller->model = $request['model'];
}
我假设有一个带有 id="save"
的按钮。
$("#save").click(function(e)
{
e.preventDefault();
const make = $("#make option:selected").val();
const model = $("#model option:selected").val();
const _token = $('input[name="_token"]').val();
$.ajax({
url:"{{route('form_for_private_sellers')}}",
method:"POST",
data:{make, _token, model},
success:function(result)
{
console.log('all done');
}
});
});
public function form_for_private_sellers(Request $request)
{
$store_seller = new Sellers();
//you may need to adjust this part as I do not know your properties called.
$store_seller->make = $request->make;
$store_seller->model = $request->model;
$store_seller->save();
}
我正在使用 Laravel 7 和 PHP 7.4.
我正在尝试使用 ajax 在我的表单中创建依赖下拉列表。我在 ajax 响应中发送 column_id 和 列 到我的下拉菜单。我的下拉列表工作得非常好,但我的数据库查询或 ajax 响应出现混乱。我的下拉列表显示列的值,但是当我尝试保存到数据库时,它只保存列的“Id”而不是值。
我只是想将 column_id 和 列 都发送到我的下拉列表中,但只将值保存到数据库中。
Blade
<form action="{{route('form_for_private_sellers')}}>
<div class="form-group">
<select name="make" id="make" data-dependent="model">
<option value="">Select Make</option>
<option value="254">Abarth</option>
</select>
</div>
<div class="form-group">
<select name="model" id="model">
<option selected value="">Select Model*</option>
</select>
</div>
</form>
Javascript
$("#make").change(function()
{
var id=$(this).val();
var make_id = id;
var dependent = $(this).data('dependent');
var _token = $('input[name="_token"]').val();
$.ajax({
url:"{{ route('fetchModel') }}",
method:"POST",
data:{make_id:make_id, _token:_token,dependent:dependent},
success:function(result)
{
$('#'+dependent).html(result);
}
});
});
控制器
public function fetchModel(Request $request)
{
$get_make_id = $request->get('make_id');
$dependent = $request->get('dependent');
$fetch_model = DB::table('auto_databases_one')
->select('model','model_id')
->distinct()
->where('make_id', '=', $get_make_id)
->where(function ($query) {
$query->orWhere('is_active', '=', '1');
})
->orderBy('model', 'ASC')
->get();
$show_model = '<option value="">Select ' . ucfirst(dependent) . '</option>';
foreach ($fetch_model as $row) {
$show_model .= '<option value="' . $row->model_id . '">' . $row->model . '</option>';
}
echo $show_model;
}
public function form_for_private_sellers(Request $request)
{
$store_seller = new Sellers();
$store_seller->make = $request['make'];
$store_seller->model = $request['model'];
}
我假设有一个带有 id="save"
的按钮。
$("#save").click(function(e)
{
e.preventDefault();
const make = $("#make option:selected").val();
const model = $("#model option:selected").val();
const _token = $('input[name="_token"]').val();
$.ajax({
url:"{{route('form_for_private_sellers')}}",
method:"POST",
data:{make, _token, model},
success:function(result)
{
console.log('all done');
}
});
});
public function form_for_private_sellers(Request $request)
{
$store_seller = new Sellers();
//you may need to adjust this part as I do not know your properties called.
$store_seller->make = $request->make;
$store_seller->model = $request->model;
$store_seller->save();
}