Ceci est mon formulaire de facture. Je veux remplir le titre en fonction de select provenant du champ d'option de base de données. Comment puis-je obtenir les valeurs de la base de données client pour remplir le titre dans le formulaire de facture. Merci.Renseigner les entrées lors de la sélection du nom
<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>
Mon itinéraire
Route::post('/populate', '[email protected]');
ma demande 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);
}
});
});
un c'est là que je me bats plus avec la logique
public function populate(Request $request){
$client =Client::find($request->id);
}
ce sont les données que je veux récupérer de la table client à po Pulate facture table lorsque je choisis le nom du client.
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();
});
Pensez à utiliser Vue et Axios (traite les requêtes ajax) livrées avec Laravel. Cependant, votre fonction populate() devrait renvoyer le client $, pourquoi n'est-ce pas? Je suppose que c'est pourquoi vous avez des données affichées dans la console de votre navigateur lorsque vous sélectionnez un client. – Spacemudd
J'ai mentionné dans ma question que je reçois l'identifiant, ce n'est pas le problème. Le problème est que je me bats avec. La logique pour retourner le titre à remplir l'entrée dans ma facture. Merci –