2016-11-13 3 views
-1

Я изучаю html-формы и php. У меня есть форма, которая имеет несколько вариантов ответов с помощью переключателей. Он работает нормально. Однако переключатель не остается выбранным в форме. Я бы хотел, чтобы он оставался выбранным, когда я отправляю правильный ответ, чтобы они могли видеть, что они изначально выбрали.Как сохранить выбор переключателя?

Есть ли атрибут или действие, которое позволит сохранить переключатель?

<form action="testit.php"> 
    <input type="checkbox" name="vehicle" value="Bike"> I have a bike<br> 
    <input type="checkbox" name="vehicle" value="Car"> I have a car<br> 
    <input type="submit" value="Submit"> 
</form> 
<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['submit'])) 
echo " keep selected item marked </br>"; 
?> 
+2

Не могли бы вы включить фрагмент кода в свой вопрос? – wiredfordesign

+0

Вы можете выбрать Bike или Car, но когда форма перезагружается из ACTION, вызывая тот же файл, выбор сбрасывается на пустые пули. –

+0

Могу ли я использовать $ _SESSION var, чтобы сохранить что-то, что проверяет предыдущий ответ и сбрасывает переключатель для проверки? –

ответ

0

Вы должны после своего сообщения вернуться на страницу (или что-то там, где видны переключатели).

Затем вы можете проверить значение. Если его опубликованное значение, установите атрибут checked="checked", и все готово.

<form action="<?php echo $_SERVER["PHP_SELF"]"> 
    <input type="checkbox" name="vehicle" value="Bike" <?php echo (isset($_POST["vehicle"]) && $_POST["vehicle"] == "Bike" ? "checked='checked'" : ""); ?>> I have a bike<br> 
    <input type="checkbox" name="vehicle" value="Car" <?php echo (isset($_POST["vehicle"]) && $_POST["vehicle"] == "Car" ? "checked='checked'" : ""); ?>> I have a car<br> 
    <input type="submit" value="Submit"> 
</form> 
+0

изменил его на предыдущий. затем добавили чек, чтобы узнать, какое значение было выбрано. Затем я скорректировал оператор

+0

На боковой ноте, почему вы положили? когда вы проверяете $ _POST. Я никогда не видел этот синтаксис. (сказал, что я новичок), т. е. $ _POST ["vehicle"] == "Bike"? ... –

+0

@JanetMcCready? и: являются коротким выражением if else. Поэтому, когда POST сделан, а значение POST аналогично байке/автомобилю, оно истинно и добавит check = checked. Иначе его пусто. Я не тестировал код. Я просто хочу поставить вас в правильном направлении. PHP_SELF означает сообщение на той же странице. Поэтому сначала флажок не выбран. Когда вы выполняете POST, страница переходит на свое место, когда значение проверяется, оно будет проверяться снова. Убедитесь, что вы используете в

Смежные вопросы