2012-10-08 69 views
0

繼最近的帖子。如何使用HTML和PHP創建一個多表單搜索功能只有一個提交按鈕?

我正在創建一個查詢SQL數據庫的搜索函數。該數據庫由不同類型的肉類包裝組成。我創建了HTML & PHP代碼,它將只使用一個表單並提交按鈕來搜索數據庫並顯示結果。但是我現在想要創建一個包含多個表單(包括三個下拉列表)的搜索框,當用戶輸入大小時,單擊一個下拉菜單並鍵入一個ID代碼,他們可以使用一個提交按鈕提交,然後將被引用一個由匹配所有三個組合的結果組成的頁面。

任何人都可以給我一些關於如何去做這件事的見解嗎?我曾嘗試創建兩個提交到相同PHP頁面以獲取結果的表單,但似乎忽略了其他表單。

這是目前我的HTML和PHP代碼:

<body> 

    <form action="form2.php" method="post"> 
       Search: <input type="text" name="term" /><br /> 
    <input type="submit" value="Submit" /> 
    </form> 


</body> 

而PHP代碼:

<body> 


    <?php 
    $con = mysql_connect ("localhost", "root", ""); 
    mysql_select_db ("delyn_db", $con); 

    if (!$con) 
    { 
    die ("Could not connect: " . mysql_error()); 
    } 


$term = mysql_real_escape_string($_REQUEST['term']);  

    $sql = "SELECT * FROM delyn WHERE toolcode LIKE '%".$term."%' OR trayheight LIKE 
    '%".$term."%' OR delyncode LIKE '%".$term."%' OR description LIKE '%".$term."%' 
     OR trayshape LIKE '%".$term."%' OR traydepth LIKE '%".$term."%' OR traywidth 
    LIKE '%".$term."%'"; 
    $r_query = mysql_query($sql); 

if(!$sql) 
    { 
     echo "could not find"; 
    } 

     while ($row = mysql_fetch_array($r_query)){ 
     echo 'ID: ' .$row['ID']; 
     echo '<br /> Delyn code: ' .$row['delyncode']; 
     echo '<br /> Tool Code: '.$row['toolcode']; 
     echo '<br /> Description: '.$row['description']; 
     echo '<br /> Tray range '.$row['trayrange']; 
     echo '<br /> Tray type: '.$row['traytype']; 
     echo '<br /> Tray size: '.$row['traysize']; 
     echo '<br /> Tray height: '.$row['trayheight']; 
     echo '<br /> Tray width: '.$row['traywidth']; 
     echo '<br /> Tray depth: '.$row['traydepth']; 
     echo '<br /> Tray shape: '.$row['trayshape']; 
     echo '<br /> imagename: '.$row['imagename']; 
     echo '<br /> Tray live: '.$row['traylive'] . ' <br /><br />'; 
    } 


?> 

    </body> 

感謝提前:)

編輯PHP:

<body> 

    <?php 
$con = mysql_connect ("localhost", "root", ""); 
mysql_select_db ("delyn_db", $con); 

if (!$con) 
    { 
    die ("Could not connect: " . mysql_error()); 
    } 

if(isset($_POST['formSubmit'])) 
{ 
    $varType = $_POST['traytype']; 
} 

$term = mysql_real_escape_string($_POST['term']);  
$sql = "SELECT * FROM delyn WHERE traytype LIKE '%".$varType."%'"; 


$r_query = mysql_query($sql); 


while ($row = mysql_fetch_array($r_query)){ 
echo 'ID: ' .$row['ID']; 
echo '<br /> Delyn code: ' .$row['delyncode']; 
echo '<br /> Tool Code: '.$row['toolcode']; 
echo '<br /> Description: '.$row['description']; 
echo '<br /> Tray range '.$row['trayrange']; 
echo '<br /> Tray type: '.$row['traytype']; 
echo '<br /> Tray size: '.$row['traysize']; 
echo '<br /> Tray height: '.$row['trayheight']; 
echo '<br /> Tray width: '.$row['traywidth']; 
echo '<br /> Tray depth: '.$row['traydepth']; 
echo '<br /> Tray shape: '.$row['trayshape']; 
echo '<br /> imagename: '.$row['imagename']; 
echo '<br /> Tray live: '.$row['traylive'] . ' <br /><br />'; 
    } 


?> 
    </body> 
+0

你會得到什麼錯誤?爲什麼使用$ _REQUEST而不是$ _POST ['term']? – Rob

+0

我沒有收到錯誤(發佈或請求工作),只有一個表單框似乎覆蓋了另一個。我想創建一個搜索表單,可以將所有輸入的值用於搜索數據庫。 – LiamHorizon

+0

那麼,我不明白你指的第二種形式。我沒有看到2個疤痕。 – Rob

回答

2

爲什麼不在同一個表單上使用多個輸入?例如:

<form action="form2.php" method="post"> 
      Search: <input type="text" name="term" /><br /> 
      Sizes: <input type="text" name="sizes" /><br /> 
      Select an option: <select name="dropdownselection" ><option...</option></select><br /> 
      ID Code: <input type="text" name="id" /><br /> 
<input type="submit" value="Submit" /> 
</form> 

然後,您可以像訪問爲搜索項輸入的值一樣訪問這些值。 注意:您應該爲標籤使用標籤標籤,並使用列表來佈置表單。

編輯:一個選項標籤如下所示:

<option value="what is posted to the script">What is seen by the user</option> 

編輯:請刪除圍繞$ VARTYPE變量分配的條件

編輯:使用和,而不是,或在你的SQL查詢,因爲你需要兩個條件纔是真實的。如果您還有其他問題,請打開一個新問題,因爲這個問題有點混亂。最後,如果你覺得這個答案對你有幫助,請考慮接受它。

+0

我似乎有一個下拉框的錯誤,它不會返回特定於搜索的結果。它只顯示所有的數據庫結果。 – LiamHorizon

+0

代碼: ' \t \t

\t \t <標籤= 'toolcode'>搜索toolcode:
\t \t <標籤= 「trayshape」>搜索trayshape:
<標籤= 「traytype」>點擊traytype: \t \t <選擇name = 「dropdownselection」> \t
\t \t
' – LiamHorizon

+0

喜歡這個? <形式行動= 「form2.php」 方法= 「POST」> <標籤= 「traytype」>點擊traytype: <選擇name = 「dropdownselection」> \t \t <選項值= 「開放」>打開 <期權價值= 「cavitised」> cavitised
\t \t – LiamHorizon

相關問題