0

I have a table with bank deposits which contains the next rows:

currency | period | percents.

On frontend I have 2 select fields and 1 input:

    <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">

So I need to get a percentage value into input field depending on these selected options. For example user selects USD and 12 months, and automatically appears percentages for selected options. If somebody will provide just a simple example I would be very happy.

1
  • you have to send the ajax request to get the data since it will change dynamically based on the user selected values. Commented Dec 20, 2015 at 18:50

2 Answers 2

3

You can use 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;
    }
  }

});

Here the snippet http://jsbin.com/qorovo/edit?html,js,output

From the Laravel side, you could return simple JSON

Route::get('/get_percent/{currency}/{period}', function($currency, $period) 
{
    return App\Deposit::where('currency', $currency)
                      ->where('period', $period)
                      ->first();
});
Sign up to request clarification or add additional context in comments.

2 Comments

I did everything as you described and it works. The only 1 problem I have is - the "percentages" is not appears in the percentage input field, when I use return response.percents. PHP returs the correct value, but console lo shows undefined.
Ok. It was some mistakes from my side now it works fine. Big Thank you!
0

I can not give you exact code but I can help you
Step 1
Detect when the user select options using jQuery or JavaScript
Step 2
then send an ajax request to controller like this

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

        }
        });

Step 3
Set up the route Route::post('home', 'MyController@getData')

Step 4
in your controller

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

1 Comment

I'll try this variant.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.