2015-10-28 33 views
-1

加載網頁時,我得到這個錯誤:錯誤使用下拉菜單(HTML)當選擇MySQL查詢

注意:未定義指數:bandselection在 /public/sites/www.transport-dealer.com /commercialequipmentfinder/index.php 上線203

說明:未定義指數:bandselection2在 /public/sites/www.transport-dealer.com/commercialequipmentfinder/index.php 線204上

當我按下提交,它會顯示正確的數據,反正是有,以確保已被過濾,並顯示在表格的「seleccted」部分數據

HTML:

<form method="post" action="index.php"> 
    <label> 
    <select name="bandselection" id="bandselection"> 
     <option value="1990" selected="selected">1990</option> 
     <option value="2006">2006</option> 
     <option value="2005">2005</option> 
     <option value="2004">2004</option> 
    </select> 
    <select name="bandselection2" id="bandselection2"> 
     <option value="2015" selected="selected">2015</option> 
     <option value="2006">2006</option> 
     <option value="2005">2005</option> 
     <option value="2004">2004</option> 
    </select> 
    </label> 
    <label> 
    <input type="submit" name="Submit" value="Submit" /> 
    </label> 
</form> 

PHP:

$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$bandselection = $_POST['bandselection']; 
$bandselection2 = $_POST['bandselection2']; 
$sql = "SELECT ID, link, link_image, modelyear, brand, city, price, description, country, type FROM semi_trailer_curtainsider WHERE modelyear BETWEEN '" . $bandselection ."' AND '" . $bandselection2 ."' AND brand = 'Samro'"; 
+1

在初始頁面加載你的'$ _POST'變量沒有設置,這會導致問題。將該節置於'if(isset($ _ POST ['bandselection'])){...}'來防止警告。 – Sean

+0

嗨,非常感謝:)這真的很有幫助,很抱歉,我無法找到其他相同的帖子。我不知道如何正確地說出這個問題 –

回答

0

這是因爲超全局$_POST沒有填充然而,當加載頁面(因爲它是一個HTTP請求GET),你應該在處理由s另一個PHP文件中的表單數據在<form>標籤這樣的ETTING屬性action

<form action="other_page.pho"> 

和/或檢查$_POST陣列處理之前被填充:

if(isset($_POST['my_data'])){ 
     //process form 
} 
+0

嗨,非常感謝您的幫助,我已經從@sean得到了awnser –