【问题标题】:Can't get the values from multiple select with $_GET request无法使用 $_GET 请求从多项选择中获取值
【发布时间】:2015-03-18 10:24:52
【问题描述】:

我需要一些帮助。

我使用 GET 请求从多选字段将所选值发送到我的进程页面 (archive.php)

<form id="form1" class="four columns" action="archive.php" method="get" name="form1">
<select id="select2" multiple="multiple" name="location[]">
<option value="103001000">value1</option>
<option value="103002000">value2</option>
<option value="103003000">value3</option>
<option value="103004000">value4</option>
</select>

我像这样在我的网址上获得选定的位置

location[]=103002000&location[]=103003000

在archive.php中我试图从数据库中获取数据

if (( isset($_GET['location']) && !empty($_GET['location']) )) {
    die(var_dump($_GET['location'])); // the var_dump doesn't return an array at all
    $loc = implode(', ', $_GET['location']);

    $sql="SELECT  * FROM locations WHERE AreaID IN (". $loc.")";
}

但我收到以下错误:错误:“where 子句”中的未知列“数组”。

我该如何解决这个问题?

【问题讨论】:

  • 更改名称 = 'location' 并尝试。
  • 我认为 loc 数组中的每个项目都需要用引号括起来:$loc = implode('\', \'', $_GET['location']); 然后 $sql="SELECT * FROM locations WHERE AreaID IN ('". $loc."')"; 但如果有任何项目,你也需要转义引号。
  • @Rubik:不起作用。奇怪的是,我在我的 url 上获得了选定的值,而我用来转储 $_GET['location'] 数组的 die() 没有显示任何内容..
  • @Ayyanar G 你的意思是在哪里更改名称?在我的
  • die 命令中的var_dump 会让它看起来像是空的。此函数是一个回显命令,不提供字符串。因此不会显示任何内容,因为die 阻止了这种情况。在die 之前执行var_dump,您将看到实际值。请使用该结果信息更新问题

标签: php mysql get multiple-select


【解决方案1】:

尝试如下可能很简单

 if (( isset($_GET['location']) && !empty($_GET['location']) )) {
        die(var_dump($_GET['location'])); // the var_dump doesn't return an array at all
        //$loc = implode(', ', $_GET['location']);
        $_GET['location'] = array('first'=>'loc1','second'=>'loc2','third'=>'loc3');
        $loc = implode('","', $_GET['location']);
        $loc ='"'.$loc.'"';

        $sql='SELECT  * FROM locations WHERE AreaID IN ('.$loc.')';
        echo $sql;
    }

结果查询

SELECT * FROM locations WHERE AreaID IN ("loc1","loc2","loc3")

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 2017-01-11
    • 1970-01-01
    • 2015-06-08
    • 2017-09-12
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多