我正在提交表单并获取http://localhost/web/test.php?cuisine=1&cuisine=2&cuisine=3
之类的网址。
我想得到echo $_GET['cuisine'];
的结果,输出应为"1,2,3" / $rt = "1,2,3";
我想在查询(select * from table where id in ($rt) )
我的表格: 没有烹饪限制
$result = $db->query("
SELECT
*
FROM
cuisines
WHERE
status=1
order by id
");
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<option value="<?php echo $rs["id"]; ?>"><?php echo $rs["ename"]; ?></option>
<?php } ?>
</select>
</form>
我已经尝试了以下但是它只采用了最后一个ID#3,当我只选择一个不是多个时它工作正常:
$temp = $_GET['cuisine'];
$thelist = implode(",",$temp);
我试过http://localhost/web/test.php?id[]=1&id[]=2&id[]=3
&amp;打印结果它给了我Array ( [0] => 1 [1] => 2 )
,但如何在WHERE id IN (....);
中使用它我试过不能。
答案 0 :(得分:0)
正如chris85和Craig的评论所示。将选择字段的名称更改为cuisine[]
。
<?php
var_dump($_GET);
?>
<form action="">
<select name="cuisine[]" multiple>
<option value="">None</option>
<?php $cuisines = ['indian', 'english', 'thai', 'italian']; ?>
<?php foreach($cuisines as $key => $cuisine) { ?>
<option value="<?php echo $key; ?>"><?php echo $cuisine; ?></option>
<?php } ?>
</select>
<input type="submit">
</form>
如果我选择'english'和'thai',输出会显示:
array (size=1)
'cuisine' =>
array (size=2)
0 => string '1' (length=1)
1 => string '2' (length=1)