javascript – PHP: on select change, post form to self – Education Career Blog

It’s basically what the title says.. I have a form with a select control that I want to force the form to post back to self on change.

$bmsclientlist = $clientobj->getBMSClientList();

echo '<form name="changebmsid" method="post" action="' . $_SERVER'PHP_SELF' . '"><select name="bmsid">';

foreach($bmsclientlist as $bmsclient) {
    $var = '';
    if($client'bmsid' == $bmsclient'id') {
        $var = ' selected="selected"';
    echo '<option value="' . $bmsclient'id' .'"'. $var .'>' .$bmsclient'clientname' . '</option>';

echo '</select></form>';

$backupobj = new AdminBackup();

    $statusarray = $backupobj->getStatusTotalsbyId($_POST'bmsid');
    $statusarray = $backupobj->getStatusTotals();

I know it’s going to involve some javascript but I’m not too sure how to achieve this.

Any help most appreciated!




This is a <select> that will submit the parent form

<form method="post" action="#" name="myform">
    <select name="x" onchange="myform.submit();">
        <option value="y">y</option>
        <option value="z">z</option>

All you have to do is give a name to your <form> and add the onchange event to your <select>

Adam is right. While the example above works perfectly, I would do it like this:

Using jQuery but there are many other options available…

<script type="text/javascript" src="jquery.js"></script>

and the form

<form method="post" action="" name="myform">
    <select name="x" id="mySelect">
        <option value="y">y</option>
        <option value="z">z</option>


a quick fix is this:

Add an onchange attribute to your selectlist

<select name="bmsid" onchange="javascript: form.submit();">


Change your select menu to this:

<select name="bmsid" onchange="document.forms'changebmsid'.submit()">


Here’s another possible approach:

<script type="text/javascript">
    window.onload = function() {
        document.forms'myform'.addEventListener('change', function() {
        }, true);

Put that anywhere on your page, and you can leave you form as it is.

Leave a Comment