根据选定的值从数据库中获取数据。 Vue.js + laravel

Get data from DB based on selected values. Vue.js + laravel

我有一个 table 银行存款,其中包含下一行:

        currency | period | percents.

在前端我有 2 个 select 字段和 1 个输入:

            <select name="currency" class="form-control" v-model="currency">
                <option>USD</option>
                <option>EUR</option>
            </select>

            <select name="period" class="form-control" v-model="period">
                <option>6</option>
                <option>12</option>
                <option>24</option>
            </select>

        <input class="form-control" type="text"  value="@{{ percents }}" v-model="percents">

所以我需要根据这些 selected 选项在输入字段中获取百分比值。 例如用户 selects 美元和 12 个月,并自动显示 selected 选项的百分比。 如果有人能提供一个简单的例子会很高兴。

我不能给你确切的代码,但我可以帮助你
步骤 1
使用 jQuery or JavaScript
检测用户何时 select 选项 第 2 步
然后像这样向控制器发送 ajax 请求

$.ajax({
            url: "/home",
            type: 'post or get',
            data: data to send to server,
            success: function(){
                console.log("success");
            },
        error: function(){
            $(".necessary-fields").show();

        }
        });

步骤 3
设置路线 Route::post('home', 'MyController@getData')

步骤 4
在你的控制器中

class MyController extends Controller{
    public function getData(){
        //fetch data from db
        return data;
    }
}

您可以使用 computed properties and ajax call. Everytime user change the option, the percent in text box will re-evaluate. Here the example using VueJS and vue-resource.

new Vue({

  el: '#app',

  data: {
    currency: '',
    period: '',
  },

  computed: {
    percents() {

      var url = "/get_percent/" + this.currency + '/' + this.period;

      this.$http.get(url, function(response){
        return response.percents;
      });

      return this.currency + ' - ' + this.period;
    }
  }

});

这里是片段http://jsbin.com/qorovo/edit?html,js,output

从 Laravel 方面,您可以 return 简单 JSON

Route::get('/get_percent/{currency}/{period}', function($currency, $period) 
{
    return App\Deposit::where('currency', $currency)
                      ->where('period', $period)
                      ->first();
});