Prototype JS – Check if Checkbox is Selected and Pass Value in Params

ajaxprototype-js

I have a below checkbox in my phtml file

<input type="checkbox" id="my_checkbox" name="my_checkbox">

Below code is used to pass params to controller file

$('checkbox_id').observe('click', function(e) {
            var checked = this.checked;
        });


new Ajax.Request("<?php echo $formAction;?>", {
           method: 'post',
           postBody: "mypostdata="+$('my_value').value,
           onComplete: function(data) {
                var mydata = data.responseText.evalJSON(true);
                $('shopping-cart-totals-table').update(mydata);
            }
    });

How can I check if the checkbox is clicked or not and pass its vale in postBody as params to my controller file ?

For example,

If checkbhox clicked, value = yes/true
If not, value = no/false

How can I pass the aboove value, based on user's click as params ?

Thanks

Best Answer

Use this to determine if the checkbox is checked and store it in a variable as a bool value.

After that for postBody you could use:

"mypostdata="+$('my_value').value +"&isChecked="+isChecked;

Where isChecked is the js variable you stored the bool value in and it will be passed to the post param: isChecked

After Edit:

The checked variable in observer function should be a global variable. The var checked as it stands is local to the observer function.

you could do something like:

$('checkbox_id').observe('click', function(e) {
            var checked = this.checked;
            $(this).setAttribute('is_itchecked', checked);
        });

Then your Ajax code should become:

new Ajax.Request("<?php echo $formAction;?>", {
           method: 'post',
           postBody: "mypostdata="+$('my_value').value + "&isChecked=" $('checkboxMy').readAttribute('is_itchecked'),
           onComplete: function(data) {
                var mydata = data.responseText.evalJSON(true);
                $('shopping-cart-totals-table').update(mydata);
            }
    });

Here checkboxMy should be the id of the checkbox you are trying to check the status of.

Related Topic