2011-08-24 73 views
0

免責聲明:自從我上次編寫任何代碼以來已經有一段時間了。我的代碼質量很可能不及格。你已被警告。只有一個選擇列表適用於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>"; 

} 
?> 
+0

你可以把創建的東西的來源粘貼? – Neal

+0

哎呀。讓我試試...這會很笨重。 – Chris

+0

不要粘貼在這裏。把它放到一個pastebin中,並把它鏈接到這裏 – Neal

回答

0

完全重新寫在這裏=>http://pastebin.com/raw.php?i=qi5F7X2e

我的表單有幾個問題。

  • a)我的SELECT列表都不是空的。
  • b)我從不檢查是否從我的函數返回值。

這是工作。

感謝大家花時間。

0

你沒有你的窗體的一部分與name='submit'

那裏你將永遠也進不了if語句,說:if (isset($_POST['submit'])) {因爲它會總是是假的

+0

'?你是說這是不正確的? – Chris

+0

@Chris - 嗯奇怪,這似乎並沒有提交。 (請參閱我的演示關於您的OP的評論) – Neal

+1

@Chris也可能看起來像這樣:'' – Neal

相關問題