PHP:在选择更改时,将表单发布到自己

时间:2010-10-20 09:03:50

标签: php javascript forms postback

这基本上就是标题所说的..我有一个带有选择控件的表单,我想强制表单在更改时回发给自己。

$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();

if(isset($_POST['bmsid']){
    $statusarray = $backupobj->getStatusTotalsbyId($_POST['bmsid']);
}else{
    $statusarray = $backupobj->getStatusTotals();
}

我知道它会涉及一些javascript,但我不太清楚如何实现这个目标。

最值得赞赏的任何帮助!

谢谢,

Jonesy

3 个答案:

答案 0 :(得分:12)

这是<select>,将提交父表单

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

您只需为<form>指定一个名称,然后将onchange事件添加到<select> ...


亚当是对的。虽然上面的例子很完美,但我会这样做:

使用jQuery,但还有许多其他选项......

<head>
<script type="text/javascript" src="jquery.js"></script>
<script>
    $(document).ready(function(){
        $('#mySelect').change(function(){
            myform.submit();
        });
    });
</script>
</head>

和表格

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

答案 1 :(得分:7)

快速解决这个问题:

将onchange属性添加到选择列表

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

答案 2 :(得分:2)

将您的选择菜单更改为:

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

<强>更新

这是另一种可能的方法:

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

将它放在页面的任何位置,您可以保持原样。