Как выбрать атрибут selected с помощью функции str_replace на PHP

329
25 сентября 2017, 01:01

Есть такой код:

<?php 
echo '<select size="1" name="country">'.str_replace('>'.$_SESSION['USER_COUNTRY'], 'selected>'.$_SESSION['USER_COUNTRY'], '<option value="0">Не скажу</option><option value="1">Украина</option><option value="2">Россия</option><option value="3">США</option><option value="4">Канада</option>').'</select>';
?>

После выбора информация сохраняется в БД и все вроде ок, но поле селектора не показывает сохранившуюся в БД информацию о уже выбранной стране. Как можно исправить?

Answer 1

Ну давайте порассуждаем...

$_SESSION['USER_COUNTRY'] будет содержать value выбранного option-a (я предполагаю, что где-то вы его корректно сохранили... потому что если нет - то это вообще задача с неизвестным числом неизвестных).

Давайте вычислим в вашем str_replace первые аргументы (предположим, я выбрал Украину):

'>'.$_SESSION['USER_COUNTRY'] превратится в >1 'selected>'.$_SESSION['USER_COUNTRY'] превратится в selected>1

Значит, вы берете вот такую строку (я укоротил до двух опшенов, чтобы проще было)

<select size="1" name="country"><option value="0">Не скажу</option><option value="1">Украина</option></select>, ищете в ней фрагмент >1 и меняете его на selected>1.

А теперь сами скажите, что пошло не так? :)

READ ALSO
SVG ссылка как object не через JS

SVG ссылка как object не через JS

Здравствуйте! Вопрос такой: У меня есть svg файл, там логотип компанииОн имеет пару стилей

353
Не могу клонировать код JS

Не могу клонировать код JS

Есть код только для одного divМне нужно эту функцию применить к другим дивам с разными id

229
Iframe. Изменить размер содержимого

Iframe. Изменить размер содержимого

Есть iframeОн хватает сайт с онлайн игрой

394