PHP,如何使用GET抓取并显示下拉列表?

问题描述

| 这个问题实际上有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>
<?
}
?>
有任何想法吗? 谢谢     

解决方法

        如果只想使用本机功能,则必须将下拉菜单的代码更改为此外观
<select multiple=\"multiple\" name=\"cat[]\">
   <option value=\"1\">first</option>
   <option value=\"2\">second</option>
   <option value=\"3\">third</option>
</select>
添加到名称\“ [] \”和多个选项 在这种情况下,您有网址页?cat [] = 1&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>
    ,        您需要执行以下操作:
<select name=\"test[]\" multiple=\"multiple\">
//> option
因此,您可以使用以下方法进行解析:
 foreach ($_POST[\'test\'] as $t){
   echo \'You selected \',$t,\'<br />\';
 }
    ,        如果我的理解是正确的,则$ 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数组结合使用,以逗号分隔的字符串形式输出,该字符串可以作为url的一部分输出。