Как получить значение из Combo Box PHP? - PullRequest
2 голосов
/ 13 сентября 2010

Я использую PHP 5 для создания страницы запроса для базы данных MySQL с 2 таблицами «ученики» и «учителя». Я создал поле со списком, которое позволяет пользователям просматривать и выбирать 2 таблицы из поля со списком с помощью кнопки «Отправить» после выбора из поля со списком.

Однако проблема со сценарием заключается в том, что я хочу проверить, работает ли кнопка «отправить», и я создал «echo.php», чтобы отобразить значение поля со списком и кнопку «Отправить». В целом идея состоит в том, чтобы сделать запрос, как эти шаги:

1) Пользователь выбирает значение из поля со списком «учитель» или «ученик». 2) Пользователь нажимает кнопку отправки. 3) После нажатия кнопки «Отправить» пользователь перенаправляется на «echo.php». 4) «echo.php» должен выводить / echo out либо «teacher», либо «student».

Коды для скрипта:

<?php
include "db_connect.php";
{
?>
<td valign=top><strong>Name:</strong></td>
<td>

<?php
echo "<form name = \"queryEquipTypeForm\" method = \"post\" action
=\"select_table.php\">"; 
echo '<select name=\"table\">'; 
echo "<option size =30 selected>Select</option>";

$result = mysql_query("show tables");

if(!$result) trigger_error("Query Failed: ".  mysql_error($db), E_USER_ERROR);

if(mysql_num_rows($result)) 
{ 
while($table_array = mysql_fetch_array($result)) 
{ 
    echo "<option>$table_array[0]</option>";
}    

echo '</select>';

echo '</form>';

if(!$_POST['submit'])
{
?>
<form method="post" action="select_table.php">   
<input type="submit" name="submit" value="Submit">
</form>
<?php
}
else
{
  echo '<script type="text/javascript">
        alert("Redirecting you to echo.php page");
        window.location="echo.php"</script>';
}

} 
else 
{
echo "<option>No Names Present</option>";  
} 
}

?>
</td>

Коды для "echo.php":

<?php
include "select_table.php";
echo "data is : ".$_POST['table'];
?>

Вывод echo.php будет точно таким же, как и «select_table.php» с полем cobo и «data is:» без слова «teacher» или «student», поскольку оно перенаправляется в echo.php

Ответы [ 2 ]

3 голосов
/ 13 сентября 2010

Я не совсем уверен, что именно вы хотите сделать, но, как уже указывал michaeltwofish, перенаправление на другую страницу с помощью javascript приведет к потере данных поста. Также вы, кажется, выводите два элемента, когда select_table.php вызывается без данных публикации, один из которых содержит только кнопку отправки, в то время как в первой форме отсутствует кнопка.

Как правило, вы хотите, чтобы ваш php-скрипт выводил форму с помощью выпадающего списка, где пользователь мог выбрать таблицу, или, если были опубликованные данные (то есть, что пользователь выбрал значение), результаты выбора, вроде как следующее:

<?php

if(isset($_POST['table'])) {
    print "Selected element: " . $_POST['table'];
} else {
    echo '<form method="post" action="select_table.php">';
    echo '<select name="table">';
    // here should be your SQL query and the combobox options generation
    echo '</select>';
    echo '<input type="submit" />';
    echo '</form>';
}
?>
0 голосов
/ 13 сентября 2010

Когда форма отправлена, вы перенаправляете на echo.php, но это означает, что вы потеряете данные POST. Вам нужно тщательно продумать ход вашего приложения, потому что то, что у вас есть, кажется немного запутанным.

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