php,如何使用GET抓取并在下拉列表中显示数组?

时间:2011-06-14 19:25:28

标签: php arrays

这个问题实际上有2个部分

我有一些变量:$cat = 41; $cat = 2; $cat = 3;我希望能够在这里传递多个数组$next_page .= "?cat= [] ";,以便最终看起来像这样

http://www.xxx.com/csxxx.php?&cat=3, 41

我真正想做的是将这个整数传递给下拉菜单作为多重选择。

为此我得到了这个功能:

<?
function display($cat, $name)
{?>
<select name="<?=$name?>">

<option value=<?php if ($cat == "2" ) {echo"2 selected";} else {echo"0";}?>> 2</option>
<option value=<?php if ($cat == "41") {echo"41 selected";} else {echo"41";}?>>41</option>
<option value=<?php if ($cat == "3") {echo"3 selected";} else {echo"1";}?>>3</option>
<? 
if ($cat == 'xx') // any
{
print "<option value=\"\" selected>Any</option>";
}
?>
</select>
<?
}
?>

任何想法? 感谢

3 个答案:

答案 0 :(得分:1)

你需要做这样的事情:

<select name="test[]" multiple="multiple">
//> option

所以你可以用以下方法解析它:

 foreach ($_POST['test'] as $t){
   echo 'You selected ',$t,'<br />';
 }

答案 1 :(得分:0)

如果我的理解是正确的,那么$ cat是逗号分隔的整数字符串。您可以使用PHP的explode函数将其转换为数组,然后使用in_array进行测试以查看该值是否在数组中:

<?
function display($cat, $name)

$cat = explode(',', $cat);

{?>
<select name="<?=$name?>">

<option value=<?php if (in_array("2", $cat)) {echo"2 selected";} else {echo"0";}?>> 2</option>
<option value=<?php if (in_array("41", $cat)) {echo"41 selected";} else {echo"41";}?>>41</option>
<option value=<?php if (in_array("3", $cat)) {echo"3 selected";} else {echo"1";}?>>3</option>
<? 
if (in_array("xx", $cat)) // any
{
print "<option value=\"\" selected>Any</option>";
}
?>
</select>
<?
}
?>

同样,您可以将implode与现有的$ cat数组一起使用来创建逗号分隔的字符串,您可以将其作为网址的一部分输出。

答案 2 :(得分:0)

如果您只想使用本机功能,则必须将下拉代码更改为此外观

<select multiple="multiple" name="cat[]">
   <option value="1">first</option>
   <option value="2">second</option>
   <option value="3">third</option>
</select>

添加名称“[]”和多个选项

在这种情况下你有网页?cat [] = 1&amp; cat [] = 2 ...

可以在$ _GET ['cat']中作为数组使用。

如果您需要在网址中使用逗号分隔的“cat”,则必须使用javascript。

jQuery的推文。

<form id="multiform">
    <select multiple="multiple" name="_cat[]" id="cat-list">
        <option value="1">first</option>
        <option value="2">second</option>
        <option value="3">third</option>
    </select>
    <input type="hidden" name="cat" id="hidden-cat"/>
    <input type="submit" value="Send" />
</form>
<script>
    $("#multiform").bind("submit",function(){
        var new_val = $("#cat-list").val().join(",");//joins array by comma
        $("#cat-list").val("");//cleans temporary variable
        $("#hidden-cat").val(new_val);
    });
</script>