Intereting Posts
Как я могу добавить элемент в Laravel Eloquent Collection по индексу? Сделать <li> активным с использованием PHP и CSS ffmpeg Получение изображения или миниатюры от видео ошибки Что может привести к тому, что экран администратора WordPress будет пустым, за исключением панели навигации? Включить php на mac snow leopard неопределенная ошибка индекса в запросе mysql jQuery-File-Upload by blueimp – дополнительные заголовки WooCommerce – добавление категории товаров в таблицу заказов «Inline» Class Instantiation в PHP? (Для удобства цепочки методов) PHP – Как получить имя файла из строки url Если таблица mysql db не содержит строку с определенным идентификатором, добавьте данные в таблицу Предупреждение: неожиданный символ на входе: "(ascii = 29) state = 0 in Как передать данные для просмотра в Laravel? Возможно ли расширить функцию вызова функции в строке PHP? PHP хранения нескольких целых переменных в 1 переменную?

Сохранять значения, выбранные после отправки формы

<form method="get" action=""> <select name="name"> <option value="a">a</option> <option value="b">b</option> </select> <select name="location"> <option value="x">x</option> <option value="y">y</option> </select> <input type="submit" value="Submit" class="submit" /> </form> 

При отправке формы, как я могу убедиться, что выбранные значения остаются выбранными в выпадающих меню? Эта форма находится внутри wordpress (PHP).

Чтобы избежать многих структур if-else, пусть javascript выполнит трюк автоматически:

  <select name="name" id="name"> <option value="a">a</option> <option value="b">b</option> </select> <script type="text/javascript"> document.getElementById('name').value = "<?php echo $_GET['name'];?>"; </script> <select name="location" id="location"> <option value="x">x</option> <option value="y">y</option> </select> <script type="text/javascript"> document.getElementById('location').value = "<?php echo $_GET['location'];?>"; </script> 
 <select name="name"> <option <?php if ($_GET['name'] == 'a') { ?>selected="true" <?php }; ?>value="a">a</option> <option <?php if ($_GET['name'] == 'b') { ?>selected="true" <?php }; ?>value="b">b</option> </select> 

После попытки все это «решает» ничего не работает. Проводилось ли какое-то исследование в w3school раньше и помнилось, что было объяснение сохранения ценностей в отношении радио. Но он также работает для опции Select. См. Здесь пример. Просто попробуйте и поиграйте с ним.

 <?php $example = $_POST["example"]; ?> <form method="post"> <select name="example"> <option <?php if (isset($example) && $example=="a") echo "selected";?>>a</option> <option <?php if (isset($example) && $example=="b") echo "selected";?>>b</option> <option <?php if (isset($example) && $example=="c") echo "selected";?>>c</option> </select> <input type="submit" name="submit" value="submit" /> </form> 

Поскольку WordPress уже использует jquery, вы можете попробовать что-то вроде этого:

 var POST=<?php echo json_encode($_POST); ?>; for(k in POST){ $("#"+k).val(POST[k]); } 

Js только решение:

 var tmpParams = decodeURIComponent(window.location.search.substr(1)).split("&"); for (var i = 0; i < tmpParams.length; i++) { var tmparr = tmpParams[i].split("="); var tmp = document.getElementsByName(tmparr[0])[0]; if (!!tmp){ document.getElementsByName(tmparr[0])[0].value = tmparr[1]; } } 

или если вы используете jquery, вы можете заменить

  var tmp = document.getElementsByName(tmparr[0])[0]; if (!!tmp){ document.getElementsByName(tmparr[0])[0].value = tmparr[1]; } 

с:

  $('*[name="'+tmparr[0]+'"]').val(tmparr[1]); 

Если вы используете WordPress (как в случае с OP), вы можете использовать selected функцию.

 <form method="get" action=""> <select name="name"> <option value="a" <?php selected( isset($_POST['name']) ? $_POST['name'] : '', 'a' ); ?>>a</option> <option value="b" <?php selected( isset($_POST['name']) ? $_POST['name'] : '', 'b' ); ?>>b</option> </select> <select name="location"> <option value="x" <?php selected( isset($_POST['location']) ? $_POST['location'] : '', 'x' ); ?>>x</option> <option value="y" <?php selected( isset($_POST['location']) ? $_POST['location'] : '', 'y' ); ?>>y</option> </select> <input type="submit" value="Submit" class="submit" /> </form> 

Это работает для меня!

 <label for="reason">Reason:</label> <select name="reason" size="1" id="name" > <option value="NG" selected="SELECTED"><?php if (!(strcmp("NG", $_POST["reason"]))) {echo "selected=\"selected\"";} ?>Selection a reason below</option> <option value="General"<?php if (!(strcmp("General", $_POST["reason"]))) {echo "selected=\"selected\"";} ?>>General Question</option> <option value="Account"<?php if (!(strcmp("Account", $_POST["reason"]))) {echo "selected=\"selected\"";} ?>>Account Question</option> <option value="Other"<?php if (!(strcmp("Other", $_POST["reason"]))) {echo "selected=\"selected\"";} ?>>Other</option> </select> 

Попробуйте это решение для сохранения выбранного значения в выпадающем меню:

 <form action="<?php echo get_page_link(); ?>" method="post"> <select name="<?php echo $field_key['key']; ?>" onchange="javascript: submit()"> <option value="">All Category</option> <?php foreach( $field['choices'] as $key => $value ){ if($post_key==$key){ ?> <option value="<?php echo $key; ?>" selected><?php echo $value; ?></option> <?php }else{?> <option value="<?php echo $key; ?>"><?php echo $value; ?></option> <?php } }?> </select> </form> 
 <form method="get" action=""> <select name="name" value="<?php echo $_GET['name'];?>"> <option value="a">a</option> <option value="b">b</option> </select> <select name="location" value="<?php echo $_GET['location'];?>"> <option value="x">x</option> <option value="y">y</option> </select> <input type="submit" value="Submit" class="submit" /> </form>