Sequential Order of Checkboxes Selected PHP

2019-09-06 01:55发布

At the moment, my html code is:

<form id = "query" method = "post" action = "search.php">
     <input type = "checkbox" name = "col_list[]" value = "host">host</input>
     <input type = "checkbox" name = "col_list[]" value = "atom_name>atom_name</input>
     …
     <input type = "submit">Submit</input>
</form>

And my php code:

 $columns = $_POST["col_list"];

Is there any way is which I can get the sequence in which the checkboxes where checked?

2条回答
forever°为你锁心
2楼-- · 2019-09-06 02:30

If the order is important you will have to implement some form of JavaScript or AJAX and call it when the check boxes are checked. Forms do not track the order in which fields are filled. JavaScript is well suited to this because it can trigger at the time of the click.

An alternative to AJAX could be adding a hidden field element and using JS to store the order clicked. Then it would be passed when the form is clicked.

查看更多
何必那么认真
3楼-- · 2019-09-06 02:37

you'd need to add a some javascript to get that info.

<input type="hidden" name="order"/> <!-- goes inside the form -->

Here is an examply using jQuery:

$('[name*="col_list"]').change(function(){
   if ($(this).prop('checked')){
       $('[name="order"]').val($('[name="order"]').val()+','+$(this).val())
    }
});

This should work fairly well with one caveat:

If the user un-checks then re-ckecks a checkbox it will be added to order twice.

order should result in something like:

,host,atom_name

Edit

Fixed some typos and here is a fiddle

查看更多
登录 后发表回答