У меня есть главная страница, которую я использовал при загрузке билетов в 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>