как сохранить выбранные значения в поле «Выбрать» после отправки формы?

У меня есть главная страница, которую я использовал при загрузке билетов в db, у меня есть поле «Выбор», которое я хочу сохранить значение, которое пользователь выбрал до отправки формы, но ее не происходит …

вот мой код для поля выбора:

<select name="XiD" id="XiD"> <option value="Blank" selected="selected">Please Select...</option> <option value="AAA">AAA</option> <option value="BBB">BBB</option> <option value="CCC">CCC</option> <option value="DDD">DDD</option> <option value="EEE">EEE</option> <option value="FFF">FFF</option> </select> 

просто добавьте, этот Xid отправляется до отправки

 $XiD = $_POST['XiD']; 

и я пытаюсь использовать этот скрипт:

UPDATE – изменилось с $ _GET на $ _POST, но все еще не работает …

 <script type="text/javascript"> document.getElementById('XiD').value = "<?php echo $_POST['XiD'];?>"; </script> 

моя версия jquery im с использованием: jquery-ui-1.10.2 и jquery-1.9.1

Используйте jQuery вот так.

 <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('select#XiD').val('<?php echo $_POST['XiD'];?>'); }); </script> 

Вы используете PHP для генерации HTML. Абсолютно нет необходимости использовать третий язык, чтобы диктовать, каким должен быть этот HTML-код!

 <select name="XiD" id="XiD"> <option value="Blank"<?=$XiD=='Blank' ? ' selected="selected"' : ''?>>Please Select...</option> <option value="AAA"<?=$XiD=='AAA' ? ' selected="selected"' : ''?>>AAA</option> ... </select> 

Или, что еще лучше, упростите свой код с помощью массива и избегайте написания дублирующего кода, который трудно поддерживать:

 <?php $options = array( 'Blank' => 'Please Select...', 'AAA' => 'AAA', 'BBB' => 'BBB', 'CCC' => 'CCC', 'DDD' => 'DDD', 'EEE' => 'EEE', 'FFF' => 'FFF', ); <select name="XiD" id="XiD"> <?php foreach(options as $k => $v){ ?> <option value="Blank"<?php echo $XiD==$k ? ' selected="selected"' : ''?>>Please Select...</option> <? } ?> </select> 

Согласно вашей проблеме кажется, что вы используете метод POST (потому что вы получаете значение $XiD = $_POST['XiD']; ) и используя GET для извлечения значения.

Итак, используйте document.getElementById('XiD').value = "<?php echo $_POST['XiD'];?>";

вместо

document.getElementById('XiD').value = "<?php echo $_GET['XiD'];?>";

Я бы создал функцию, чтобы проверить, совпадает ли текущее значение GET с параметром в списке, и в этом случае вернуть необходимый атрибут, чтобы он был выбран по умолчанию, который selected="selected" .

Это должно работать:

 <?php function isSelected($value){ if($value == $_GET['XiD']){ return 'selected="selected"'; }else{ return ''; } } ?> <select name="XiD" id="XiD"> <option value="Blank" <? echo isSelected('Blank');?>>Please Select...</option> <option value="AAA" <? echo isSelected('AAA');?>>AAA</option> <option value="BBB" <? echo isSelected('BBB');?>>BBB</option> <option value="CCC" <? echo isSelected('CCC');?>>CCC</option> <option value="DDD" <? echo isSelected('DDD');?>>DDD</option> <option value="EEE" <? echo isSelected('EEE');?>>EEE</option> <option value="FFF" <? echo isSelected('FFF');?>>FFF</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>