如何将选定的<options>存储到PHP数组中?

时间:2015-07-08 10:27:47

标签: php jquery arrays

所以我试图将选定的<option></option>标签存储到数组中。我到处搜索,找不到任何“好”的方式。

<form action='most-liked.php'>
            <select multiple name='choose-category' style='display: inline-block;'>
            <?php
                $allCategories = ["All", "Sport", "Automotive", "Comedy", "Misc"];
                $htmlOutput = "";
                $i=0;
                    for($i;$i<sizeof($allCategories);$i++)
                    {
                        $htmlOutput .= "<option value='".$allCategories[$i]."'>".$allCategories[$i]."</option>";
                    }   
                echo $htmlOutput;
            ?>
            </select>
</form>

我想知道是否有办法在不重新加载整个页面的情况下将所选选项添加到array中......例如,当他们选择其中一个<option>时,它的值将存储。我想可能有一种方法可以用jQuery来做到这一点吗?

我在考虑使用$_GET[]或其他东西。但不太确定我是怎么做的。

3 个答案:

答案 0 :(得分:1)

array(3) { [1]=> string(6) "284810" [3]=> string(6) "391047" [5]=> string(7) "3700134" } 的名称更改为:

<select>

所以你的代码现在看起来像:

choose-category[]

此外,最好避免在名称中使用<select multiple name='choose-category[]' style='display: inline-block;'> s,因此这是正确的:

-

您可以使用以下方式访问它:

<select multiple name='choose_category[]' style='display: inline-block;'>

哪个给你一个阵列!

答案 1 :(得分:0)

更改您的select

来自

 <select multiple name='choose-category' style='display: inline-block;'>

<select multiple name='choose_category[]' style='display: inline-block;'>

现在你的choose_category是一个数组,当你提交它时。您将收到包含所有选定值

的帖子array

答案 2 :(得分:0)

你可以使用jQuery做以下..

<form action='most-liked.php'>
            <select id="Category" multiple name='choose-category' style='display: inline-block;'>
            <?php
                $allCategories = ["All", "Sport", "Automotive", "Comedy", "Misc"];
                $htmlOutput = "";
                $i=0;
                    for($i;$i<sizeof($allCategories);$i++)
                    {
                        $htmlOutput .= "<option value='".$allCategories[$i]."'>".$allCategories[$i]."</option>";
                    }   
                echo $htmlOutput;
            ?>
            </select>
</form>
<script>
var foo = []; 
 $('#Category').change(function() {
     $('#Category :selected').each(function(i, selected){ 
          foo[i] = $(selected).text(); 
    });   alert(foo);
 }); 

</script>