Здравствуйте! почему прыгает селект? т.е. я выбираю город, по теории в select он должен остаться, а вместо этого возвращается на первую строчку(город). PHP: <?php echo "<form method=post>"; echo "<select name=\"cityeng\" onchange=\"this.form.submit()\">"; foreach(glob('db/city.dat') as $filename) { $file_handle = fopen($filename, "r"); while (!feof($file_handle)) { $line = fgets($file_handle); echo "<option>$line</option>"; } fclose($file_handle); echo "</select></form>"; } if($_POST['cityeng']) { $s_city = substr(htmlspecialchars(trim($_POST['cityeng'])), 0, 100); } echo "<form id='form1' method='post' action='index.php'> <div class=hidden><input type=text name=cityeng value=$s_city></div> </div>"; echo $s_city; ?> citi.dat
можно примерчик? если список читаю с XML то все норма! а с текстовика... возвращаться на первый город, а не тот который выбрал. PHP: <form method=post> <div class=selectind>"; if(!empty($xml_city->city->page)) { $agrs = $xml_city->city->page; echo "<select name=\"cityeng\" onchange=\"this.form.submit()\">"; foreach ($agrs as $vals) { $selected = ''; if ($_POST['cityeng'] == $vals[ob]) $selected = 'selected'; echo "<option value=\"" . $vals[ob] . "\" " . $selected . ">" . $vals . "</option>"; } echo "</select></form>"; } if($_POST['cityeng']) { $s_city = substr(htmlspecialchars(trim($_POST['cityeng'])), 0, 100); } echo "<form id='form1' method='post' action='index.php'> <div class=hidden><input type=text name=cityeng value=$s_city></div> </div>";
Куда подробнее то? Вы сначала ответьте зачем две формы? Для того что просто были? По сути вопроса - вы посмотрите чем текстовый файл от хмл отличается. В текстовом у вас в качестве элементов option - ссылки! Понимаете? Выбрав какой то пункт select вы переходите по ссылке.. честно говоря такой бред вижу впервые
проще код написал, что б разобраться PHP: <form name=sender method=post onchange="this.form.submit()" > <select name="cityeng" onchange="this.form.submit()"> <option>1</option> <option>2</option> <option>3</option> </select> </form> <?php if($_POST['cityeng']) { $s_city = substr(htmlspecialchars(trim($_POST['cityeng'])), 0, 100); } echo "<input type=text name=gorod value=$s_city></div>"; ?> в option значение меняется выбрал 3, после отправки оно меняется на 1 --- Добавлено --- это то что на ум пришло: PHP: <form name=sender method=post > <select name="cityeng" onchange="this.form.submit()"> <?php if($_POST['cityeng']) { $s_city = substr(htmlspecialchars(trim($_POST['cityeng'])), 0, 100); } echo " <option>1</option> <option selected>".$s_city."</option> <option>3</option>"; ?> </select> </form>
а в с файлом не прокатило PHP: <form name=sender method=post > <select name="cityeng" onchange="this.form.submit()"> <?php if($_POST['cityeng']) { $line = substr(htmlspecialchars(trim($_POST['cityeng'])), 0, 100); } foreach(glob('db/city.dat') as $filename) { $file_handle = fopen($filename, "r"); while (!feof($file_handle)) { $line = fgets($file_handle); echo "<option selected>$line</option>"; } fclose($file_handle); echo "</select></form>"; }; ?> </select> </form>
@leon2009, я тебе прямо показал на строчки разницы, почему в одном случае прокатывает, в другом нет, из твоих же листингов. Ну обязательно что-ли в рот ложить прямо?