1

I have my custom payment method on the checkout page with the dropdown list. and I want to get that dropdown selected value in knockout js and forward it to controller and store dropdown value in my custom table.

/view/frontend/web/template/payment/custom.html

      <div class="field field-number required">
                <label for="credit_days" class="label">
                    <span><!-- ko i18n: 'Click & Collect Credit Days'--><!-- /ko --></span>
                </label>
                <div class="control">
                    <select id="credit_days"
                            class="credit_days"
                           name="credit_days"
                           data-validate="{required:true}"
            onChange="if(this.value=='requestmore'){document.getElementById('request_more').style.display='block';}else{document.getElementById('request_more').style.display='none';}"
                           data-bind="value:creditDaysSelected(), optionsCaption:'Please chose days...'"
                           >
                        <option value="10days">10 Days</option>
                        <option value="20days">20 Days</option>
                        <option value="30days">30 Days</option>
                        <option value="40days">40 Days</option>
                        <option value="requestmore">Request More Days</option>
                    </select>
                </div>
                <div id="request_more" class="request_more" style="display: none">
                    <label for="request_more_credit_days" class="label">
                        <span></span>
                    </label>
                    <div class="control" id="require_more">
                        <input type="text" data-validate="{required:true}" name="request_more_credit_days" id="request_more_credit_days" placeholder="Enter credit Days of your choice" required>
                        <button type="submit" class="button primary action"> <span translate="'Submit Request'"/> </button>
                    </div>
                </div>
            </div>

I want to store dropdown selected value to my custom DB table on click of button using a controller.

Any help will be appreciated. Thanks in advance

0

Check function selectPaymentMethod()

vendor/magento/module-checkout/view/frontend/web/js/view/payment/default.js

and then you can get the selected payment using

var paymentMethod = quote.paymentMethod();
| improve this answer | |
  • I already getting selected payment method but i want selected value from dropdown which are associated with my custom selected payment method – Pratik ojha Jun 19 '19 at 9:07
0

Replace your Select Field with This Code

data-bind="value:creditDaysSelected, optionsCaption:'Please chose days...'"

And Get Value Using This Code

this.creditDaysSelected = ko.observable();
| improve this answer | |
  • bro using value:creditDaysSelected i am getting already selected credit days. not the options value. and one more thing i don't have any idea about knockout js. It is totally new thing for me. so please give me detailed solution. – Pratik ojha Jun 19 '19 at 11:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.