PHP: на выбор изменить, отправить форму для себя - PullRequest
6 голосов
/ 20 октября 2010

Это в основном то, что написано в заголовке. У меня есть форма с элементом управления select, которую я хочу заставить форму отправлять обратно себе при изменении.

$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, но я не слишком уверен, как этого достичь.

Любая помощь наиболее ценится!

Спасибо

Джоунси

Ответы [ 3 ]

12 голосов
/ 20 октября 2010

Это <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>
7 голосов
/ 20 октября 2010

быстрое решение это:

Добавить атрибут onchange в ваш список выбора

<select name="bmsid" onchange="javascript: form.submit();">
2 голосов
/ 20 октября 2010

Измените ваше меню выбора на это:

<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>

Поместите это в любое место на своей странице, и вы можете оставить форму как есть.

...