如何从Combo Box PHP获得价值?

时间:2010-09-13 01:25:03

标签: php mysql combobox

我使用PHP 5为MySQL数据库创建一个查询页面,其中包含2个表“学生”和“教师”。我创建了一个组合框,允许用户从组合框中选择后,通过“提交”按钮从组合框中查看和选择2个表。

然而,脚本的问题是我想验证“提交”按钮是否有效,我创建了一个“echo.php”来回显组合框和提交按钮的值。总体而言,我们的想法是执行类似以下步骤的查询:

1)用户从组合框“老师”或“学生”中选择值。 2)用户点击提交按钮。 3)单击提交按钮后,用户被重定向到“echo.php” 4)“echo.php”应输出/回显“老师”或“学生”。

脚本代码:

<?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:”没有“teachers”或“student”字,因为它被重定向到echo.php。

2 个答案:

答案 0 :(得分:3)

我不太确定你想要做什么,但正如michaeltwofish已经指出的那样,使用javascript重定向到另一个页面会让你丢失帖子数据。你似乎回应了两个&lt; form&gt;调用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>';
}
?>

答案 1 :(得分:0)

提交表单后,您将重定向到echo.php,但这意味着您将丢失POST数据。您需要仔细考虑应用程序的流程,因为您所拥有的内容似乎有点混乱。