这是我的发票表格。我想根据来自数据库选项字段的select来填充标题。如何从客户端数据库中获取值以在发票表单中填充标题。感谢。
<form action="{{ route('admin.invoices.store') }}" method="post">
{{ csrf_field() }}
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label for="invoicenumber">Invoice Number</label><br>
<input class="form-control" type="text" name="invoice_no" id="number">
<span class="alert-danger" id="number-feedback"></span>
</div>
<div class="form-group">
<label for="client">Client</label><br>
<select name="client" id="client_id" class="form-control">
<option value="select">Select Client</option>
@foreach($clients as $client)
<option id="option" value="{{ $client-> id|$client->name }}">{{ $client->name }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="Title">Title</label><br>
<input class="form-control" type="text" name="title" id="title">
<span class="alert-danger" id="title-feedback"></span>
</div>
</div>
我的路线
Route::post('/populate', 'InvoiceController@populate');
我的ajax请求
$(document).on('change', '#client_id', function(event){
var id = $("#client_id").find(":selected").text();
$.ajax({
type: "POST",
url: '/populate',
data: {id: id, '_token':$('input[name=_token]').val()},
success: function( data ) {
//$('#refresh').load(location.href + ' #refresh');
console.log(data);
}
});
});
这是我最挣扎的逻辑
public function populate(Request $request){
$client =Client::find($request->id);
}
当我选择客户名称时,这是我想从客户端表中获取以填充发票表的数据。
Schema::create('clients', function (Blueprint $table) {
$table->increments('id');
$table->string('company');
$table->string('title');
$table->string('name');
$table->string('phone_number');
$table->string('email');
$table->string('address');
$table->string('state');
$table->string('city');
$table->string('country');
$table->string('code');
$table->string('info');
$table->string('image');
$table->timestamps();
});
答案 0 :(得分:0)
执行以下操作:
<select name="client" id="client_id" class="form-control">
<option value="select">Select Client</option>
@foreach($clients as $client)
<option id="option" value="{{ $client->id}}">{{ $client->name }}</option>//set the value to the client id
@endforeach
</select>
JS:
var id = $("#client_id").val();//get the value
不要忘记在控制器功能中返回客户端
答案 1 :(得分:0)
I finally got it right results:
after getting id:
$client = Client::find($request->id);
return $client;
I display data in ajax call, where I was struggling so it worked fine
$(document).on('change', '#client_id', function(event){
var id = $("#client_id").val();
$.ajax({
type: "POST",
url: '/populate',
data: {id: id, '_token':$('input[name=_token]').val()},
success: function( data ) {
$("#title").val(data.title);
$("#address").val([
data.address,
data.state,
data.city,
data.country,
data.code
]);
//$('#refresh').load(location.href + ' #refresh');
console.log(data.title);
}
});
});