Получилось неплохо Я даже думал что с php не получится но получилось Спасибо Вам за помощь! PHP: <?php echo "<form method=Post>"; echo "<select size=1 name=D1[]>"; global $D1, $THESECONDVALUE, $PRODNAME; $THEFILE = "1.txt"; $THEARRAY = file($THEFILE); $LINESCOUNT = count($THEARRAY); $THESECONDVALUE = explode(":", $D1[0]); $ONSTARTVALUE = explode ("|", $THEARRAY[0]); for ($VIEWLINES = 0; $VIEWLINES < $LINESCOUNT; $VIEWLINES++) { $THEFIELDS = explode ("|", $THEARRAY[$VIEWLINES]); $PRODNAME = $THEFIELDS[0]; $PRODPRICE = $THEFIELDS[1]; echo "<option value='$PRODPRICE : $PRODNAME'>$PRODNAME</option>"; } if($THESECONDVALUE[1]) { echo "<option selected='selected' value='$PRODPRICE : $PRODNAME'>* $THESECONDVALUE[1]</option>"; // Знак * для различия. } if($THESECONDVALUE[0]) { echo "<input type='text' value = $THESECONDVALUE[0]>"; } else { echo "<input type='text' value = $ONSTARTVALUE[1]>"; } ?>
Единственное НО. Представь, что я, злой дядя, модифицирую запрос и к тебе приходит что-то такое: $_POST['D1'] = '0.0 : Бентли Континенталь'; Что ты будешь делать? З.Ы. Переменные в заглавных буквах - плохой тон.
Без разницы Если речь идет о запросе внесения строки в БД то это не имеет значения в конкретнем случаи. Потому что данный скрипт не приминяет запросы такого типа. Файл, из которого берутся данные, формируется другим скриптом. Нужно сделать так чтобы записиваюший скрипт не допускал возможности записей такого рода. ЧТо касается о написании имен переменных заглавными буквами - учту, спасибо.
А как насчёт того, чтобы всё сразу сделать правильно, а не доставать нас потом "А как мне сделать вот это? Потому что вот так у меня уже есть и менять я это не хочу/не могу/религия не позволяет."
Думаю нужно при вводе провериь содержимое вводимой строки на наличие знака ":" и заменить ее к примеру - пробелом Код (Text): $String = str_replace(":", '', $String);
Измени архитектуру приложения. Сделай как тебе посоветовали выше. Вместо того, чтобы передавать "неприкасаемые данные" (цена и название) - передавай идентификатор. Как у тебя в файле разделены записи? Строками? Передавай номер строки. Или номер записи в файле.. Неважно. Главное, чтобы невозможно было подделать те данные, которые крайне важны. То есть, в форме должно быть HTML: <option value="21">Бентли Континенталь</option> При получении от пользователя $_POST['D1'] = "21"; - ищи строчку №21 в своём файле и оттуда бери цену и название. Это вообще азы безопасного программирования, которые должен знать вообще любой программист. Никогда не давай доступ к "неприкасаемым данным" пользователю.