如何根据另一个输入所做的选择填充输入

时间:2017-10-13 04:18:02

标签: jquery laravel-5

这是我的发票表格。我想根据来自数据库选项字段的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();
    });

2 个答案:

答案 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);
        }
    });

});