1

i have my custom payment method in checkout page with 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 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();
  • 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 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();
  • 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 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.