2009-10-13 58 views
0

添加到具有特定名稱的陣列我目前將查詢發送變量的PHP文件是這樣的:通過使用循環如何從元素中獲取價值,並使用循環

 query = "?price_from=" +price_from+ "&price_to=" + price_to etc etc... 

我要填充這個查詢變量檢查用戶是否選擇了頁面上存在的下拉列表中的任何搜索條件...它只是可選的選擇搜索標準...

我該怎麼做?

請記住,如果放置列表的默認值爲001,那麼用戶還沒有輸入任何標準(價格範圍)。 所以,然後我想循環跳過這個下拉列表,並移動到下一個。 如果它發現001以外的任何值,我希望它填充查詢變量。

主要的問題是,php文件從查詢變量中使用諸如「price from」和「price to」之類的var名稱,並且如果變量「price to」中沒有設置任何值,那麼它只會打印「undefined 「或其他...

幫助!


 <html> 
    <?php 

     foreach($_GET as $key => $value) { 
     if($value!='001') { 
      echo $key . ' has a value of ' . $value . '<br>'; 
     } 
     } 

     ?> 
     </html> 

我怎麼能實現循環到這一點,需要密鑰的所有值,並增加了一個查詢,然後檢查MySQL數據庫呢?

回答

0
<html> 
<?php 
    $where = ''; 
    foreach($_GET as $key => $value) { 
     if($value!='001') { 
      $where .= ' AND ' . $key . '="' . $value . '"'; 
     } 
    } 
    $where = substr($where,4);//get rid of left 'AND' 
    $sql = 'SELECT * FROM my_table WHERE ' . $where . ' ORDER BY id ASC'; 
?> 
</html> 
+0

這是有道理的......但如何將每個鍵值插入到查詢它的MySQL數據庫的查詢? – pesar

+0

給我一秒來編輯它。 –

+1

請不要忘記逃避提交的值(永遠不要相信用戶)!另外將數據庫字段的名稱作爲'$ _GET'的鍵可能會成爲安全風險。 請記住'$ _GET'變量可能包含其他鍵,例如會話ID或其他內容。然後這將被髮送到數據庫,你的結果至少是錯誤的。 –

0

爲什麼不把你的表單方法GET ...並提交表單與AJAX。爲什麼它會打擾你的默認值?

您可以在PHP端做驗證,並決定有女巫濾波器處於激活狀態

$price = (isset($_GET['price'])) ? $_GET['price'] : false; 
+0

我提出我的AJAX GET方法的形式,但也有在一個頁面多種形式,所以這就是爲什麼我想用一個循環來獲得元素ID然後如果值不是1,然後將它們添加到一個數組中,然後我用GET發送到php文件... – pesar

+0

當前我想到了這個... Elem = getelementbyid(FORM)。元素... 對於(我= 0;我 pesar

0

這是一個JavaScript的問題(你需要獲取表單值,並確定其是否可以通過設置JavaScript的)。使用像jQuery這樣的js庫會使這個過程變得非常簡單。這就是說,我會使用PHP回答你的問題:

foreach ($_GET as $k => $v) { 

    if ($v) { 

     $uri[] = $k.'='.$v; 

    } 

} 

$url = 'http://url.com/submit.php?'.implode('+', $uri); 
0
$url = $_SERVER['SCRIPT_NAME'] . '?'; 

foreach ($_GET as $key => $value) 
{ 
    $url .= $key . '=' . $value . '&'; 
} 
相關問題