PHP выпадающего списка и отправьте форму - PullRequest
0 голосов
/ 18 января 2010

Хорошо, у меня есть этот выпадающий список, заполненный Mysql DB. При изменении выпадающего меню вся страница заполняется информацией из БД. Что я хочу, когда я отправляю эту форму (на этой странице есть две формы), я хочу, чтобы она возвращалась тому же клиенту, которого я только что выбрал в выпадающем списке. Прямо сейчас я использую сеанс, чтобы вернуть его и выбрать тот же клиент, что и раньше, но событие on change не включается и не выбирает информацию из моей базы данных для выбранного человека. Спасибо

 session_start();

$current = isset($_SESSION['ClientNamefour']) ? $_SESSION['ClientNamefour'] : 0;

$options4=""; 

while ($row = mysql_fetch_array($result)) { 

    $id=$row["Client_Code"]; 
    $thing=$row["Client_Full_Name"];
    $value="$id, $thing";
    // insert SELECTED="SELECTED" if the current $id matches $current
    $options4.="<OPTION VALUE=\"$value\" ".($id == $current ? ' SELECTED="SELECTED"' : '').">".$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>


   session_start();
// Do the redirect
    $_SESSION['ClientNamefour'] = $_POST['txtclientcode'];



header("Location: http://endeavor/php/financialoasistest.php");

Ответы [ 2 ]

0 голосов
/ 18 января 2010

Если вы установили $_SESSON['ClientNamefour'] = $_POST['ClientNamefour'] на странице процесса, то что-то подобное должно сделать при построении опций для <select>.

while ($row = mysql_fetch_array($result)) 
{
    $id = $row["Client_Code"]; 
    $key = "$id, $thing";
    $value = $row["Client_Full_Name"];

    $selected = ($id == @$_SESSION['ClientNamefour']) ? ' selected' : '';

    echo "<option value=\"{$key}\"{$selected}>{$value}</option>";
}

Редактировать : просмотр вашего комментарияответ миддапарка, я обновил это.Я тоже предположил, что весь твой код был на одной странице.

0 голосов
/ 18 января 2010

Хорошо, там довольно много проблем, но общая структура кода в стороне:

  1. Вы устанавливаете переменную сеанса из значения POST, которое не существует. (Это должно быть $_POST['ClientNamefour'] в соответствии с вашим кодом.)

  2. Вы звоните session_start() дважды по некоторым причинам. (Просто позвоните один раз в самом начале.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...