Это в основном то, что говорит название. У меня есть форма с выделенным элементом управления, который я хочу заставить форму отправить обратно на себя при изменении.
$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, но я не слишком уверен, как этого добиться.
Любая помощь наиболее ценится!
Благодаря,
Джоунси
Это <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>
быстрое исправление:
Добавить атрибут onchange в ваш список избранных
<select name="bmsid" onchange="javascript: form.submit();">
Измените свое меню выбора на следующее:
<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>
Поместите это где-нибудь на свою страницу, и вы можете оставить форму, как есть.