如何从元素获取值并使用循环添加到具有特定名称的数组

时间:2009-10-13 12:03:03

标签: php javascript ajax

我目前正在向这样的php文件发送查询变量:

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

我想通过使用循环检查用户是否在页面上的下拉列表中选择了任何搜索条件来填充此查询变量...选择搜索标准只是可选的...

我该怎么做?

请记住,如果下拉列表的默认值为001,则用户没有输入任何条件(除价格范围)。 那么我希望循环跳过此下拉列表,然后移动到下一个。 如果它找到除001以外的任何值,我希望它填充查询变量。

主要问题是php文件使用var名称,例如查询变量中的“price from”和“price to”,如果在“price to”变量中没有设置任何内容,则只会打印“undefined”什么......

帮助!


     <html> 
     <?php 

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

       ?> 
      </html> 

我如何实现一个循环,它接受所有键值并添加到查询然后检查mysql数据库呢?

3 个答案:

答案 0 :(得分:0)

对于html为什么不把表单方法放到GET ..并使用AJAX提交表单。为什么它会打扰你的默认值?

您可以在php端进行验证,并确定过滤器是否处于活动状态

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

答案 1 :(得分: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>

答案 2 :(得分:0)

$url = $_SERVER['SCRIPT_NAME'] . '?';

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