2017-10-14 3 views
0

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(); 
    }); 
+0

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

+0

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 –

Répondre

1

comme Spacemudd dit

return $client; 

manque dans la fonction populate après la

$client =Client::find($request->id); 

après que vous pouvez voir vos données dans une console d'un navigateur.