这个问题实际上有两部分
我有一些变量:$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>
<?
}
?>
有什么想法吗?感谢
您需要这样做:
<select name="test[]" multiple="multiple">
//> option
所以你可以用来解析它
foreach ($_POST['test'] as $t){
echo 'You selected ',$t,'<br />';
}
如果您只想使用本机函数,您必须将下拉列表的代码更改为这种外观
<select multiple="multiple" name="cat[]">
<option value="1">first</option>
<option value="2">second</option>
<option value="3">third</option>
</select>
添加到名称"[]"和多个选项
在这种情况下,你有url页面吗?cat[]=1&cat[]=2…
并且在$_GET['cat']中可用作数组。
如果您需要在url中使用逗号分隔的"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>
如果我的理解是正确的,那么$cat是一个逗号分隔的整数字符串。您可以使用PHP的爆炸函数将其转换为数组,然后使用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>
<?
}
?>
同样,您可以将内爆与现有的$cat数组一起使用,以创建一个逗号分隔的字符串,该字符串可以作为url的一部分输出。