只有一个选择列表适用于PHP表单

时间:2011-08-24 22:11:45

标签: php

免责声明:自从我上次编写任何代码以来已经有一段时间了。我的代码质量可能低于标准。你已被警告过了。

我有一个基本表单,用于搜索我们服务器上的平面文件。我创建的“搜索引擎”是两个选择列表:一个用于文件名,另一个用于客户站点文件。

由于我无法弄清楚的原因,当我点击提交时,我从第二个选择列表中选择的任何选项都不会被捕获。

但是,始终捕获从第一个选择列表中选择的任何选项。

我错过了什么?我相信它正在向我发起......任何提示都是受欢迎的。谢谢。

这是我的代码:

<HTML>
<head><title>SEARCH TOOL - PROTOTYPE</title></head>
<body><h1>SEARCH TOOL - PROTOTYPE</h1>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<fieldset>
<legend>Filename (one item)</legend><select name="DBFilename" id="DBFilename">
<?php $con = mysql_connect("localhost",  "user", "pass"); if (!$con) {  die('Could not connect: ' . mysql_error());}
mysql_select_db("dev", $con) or die(mysql_error());
$result = mysql_query("select distinct filename from search_test");
while ($row = mysql_fetch_array($result))
{ ?>    <option value="<?php echo $row['filename']; ?>"><?php echo $row['filename']; ?></option> <?php } mysql_close($con); ?>
</select></fieldset>
<fieldset>
<legend>Site (one item)</legend><select name="DBSite" id="DBSite">
<?php $con = mysql_connect("localhost",  "user", "pass"); if (!$con) {    die('Could not connect: ' . mysql_error());}
mysql_select_db("dev", $con) or die(mysql_error());
$result = mysql_query("select distinct site from search_test");
while ($row = mysql_fetch_array($result))
{ ?>        <option value="<?php echo $row['site']; ?>"><?php echo $row['site']; ?></option> <?php } mysql_close($con);
?>
</select></fieldset>
<input type="submit" name="submit" value="submit" >
<input type="button" value="Reset Form" onClick="this.form.reset();return false;" />
</form>
</body>
</HTML>
<?php

if (isset($_POST['submit'])) {

        if (!empty($_POST['DBFilename'])) {doFileSearch();}
                elseif (!empty($_POST['DBSite'])) {doSite();}
}

function doFileSearch() {
$mydir = $_SERVER['DOCUMENT_ROOT'] . "/filedepot";
$dir = opendir($mydir);
$DBFilename = $_POST['DBFilename'];

$con = mysql_connect("localhost", "user", "pass");
if (!$con) {die('Could not connect: ' . mysql_error());}
mysql_select_db("dev", $con) or die("Couldn't select the database.");

$getfilename = mysql_query("select filename from search_test where filename='" . $DBFilename . "'") or die(mysql_error());

echo "<table><tbody><tr><td>Results.</td></tr>";
while ($row = mysql_fetch_array($getfilename)) {
                $filename = $row['filename'];
                echo '<tr><td><a href="' . basename($mydir) . '/' . $filename . '"  target="_blank">' . $filename . '</a></td></tr>';
        }
                echo "</table></body>";
}

function doSite() {
$mydir = $_SERVER['DOCUMENT_ROOT'] . "/filedepot";
$dir = opendir($mydir);
$DBSite = $_POST['DBSite'];

$con = mysql_connect("localhost", "user", "pass");
if (!$con) {die('Could not connect: ' . mysql_error());}
mysql_select_db("dev", $con) or die("Couldn't select the database.");

$getfilename = mysql_query("select distinct filename from search_test where site='" . $DBSite . "'") or die(mysql_error());

echo "<table><tbody><tr><td>Results.</td></tr>";
while ($row = mysql_fetch_array($getfilename)) {
                $filename = $row['filename'];
                echo '<tr><td><a href="' . basename($mydir) . '/' . $filename . '"  target="_blank">' . $filename . '</a></td></tr>';
        }
                echo "</table></body>";

}
?>

2 个答案:

答案 0 :(得分:0)

您的表单中没有name='submit'

因为你永远不会进入if语句if (isset($_POST['submit'])) {,因为它总是是假的

答案 1 :(得分:0)

此处完全重新写入=&gt; http://pastebin.com/raw.php?i=qi5F7X2e

我的表格有几个问题。

  • a)我的SELECT列表中没有一个是空的。
  • b)我从不检查函数的返回值。

这个工作正常。

感谢所有人抽出时间。