У меня есть раскрывающийся список с заполненной базой данных.
$options4=""; while ($row = mysql_fetch_array($result)) { $id=$row["Client_Code"]; $thing=$row["Client_Full_Name"]; $options4.="<OPTION VALUE=\"$id, $thing\">".$thing; } ?> <FORM name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <SELECT NAME="ClientNamefour" OnChange="this.form.submit()"> <OPTION VALUE=0>Client <?php echo $options4?> </SELECT> </FORM>
После этого он вытаскивает имя клиента из базы данных и выдает некоторую информацию, и есть форма, которую можно заполнить, чтобы вставить больше информации в базу данных. После заполнения этой формы эта страница отправляет информацию на другую страницу с кодом для вставки данных в базу данных. Затем я использую заголовок в конце этого кода, чтобы отправить его обратно на эту страницу. Но когда он вернется на эту страницу, я хочу, чтобы он вернулся к клиенту, который они выбрали раньше, а не пустой экран. Итак, как мне сделать список заполненных БД автоматически возвращаться к предыдущему выбору с помощью php?
Все, что вам нужно сделать, это изменить способ создания опций, который будет отображаться при создании выбранного, а затем добавить к нему атрибут SELECTED …
//obtain current value from GET, POST or COOKIE value... $current=isset($_REQUEST['ClientNamefour'])?$_REQUEST['ClientNamefour']:''; while ($row = mysql_fetch_array($result)) { $id=$row["Client_Code"]; $thing=$row["Client_Full_Name"]; $value="$id, $thing"; //figure out if we should select this option... $sel=($value==$current)?'SELECTED':''; $options4.="<OPTION $sel VALUE=\"$value\">".$thing; }
Одним из способов сохранить постоянство значения будет сохранение его в сеансе, например, при обработке формы
//assuming session_start() has been called... if (isset($_POST['ClientNamefour'])) $_SESSION['ClientNamefour']=$_POST['ClientNamefour'];