从选择倍数中获取值

时间:2014-11-12 16:45:13

标签: javascript php multipleselection

所以我有一个多项选择,我已经用js改编而没有CTRL键

$(function(){
    $('.select-toggle').each(function(){    
        var select = $(this), values = {};    
        $('option',select).each(function(i, option){
            values[option.value] = option.selected;        
        }).click(function(event){        
            values[this.value] = !values[this.value];
            $('option',select).each(function(i, option){            
                option.selected = values[option.value];        
            });    
        });
    }); 
});

我在多个输入字段上使用它,下面是一个例子。

<tr class="wide">
   <td class="input titledinput" style="left: -5px;"><select title="Please select the Consoles/Platforms the game is going to be, or has, released on. You can select more than one."
    multiple="multiple" class="select-toggle roundedcorners" name="Consoles" size="1"
    />';
       $qselectconsole = "SELECT * FROM console ORDER BY Console asc";
       $rselectconsole = mysqli_query($dbc, $qselectconsole);
       if(mysqli_num_rows($rselectconsole) !== false){
         while($rowselectconsole = mysqli_fetch_array($rselectconsole, MYSQLI_ASSOC)){
           echo '<option value="'.$rowselectconsole['ConsoleID'].'">'.$rowselectconsole['Console'].'</option>'; 
         }
       } else {
          echo '<option value="0">Something went wrong, please try refreshing the page</option>';
       }
          echo '</select>
   <p2>Platform</p2></td>
</tr>

多选按预期工作。 现在我希望$ _POST ['控制台']在这种情况下输出每个选定值的值。但是当我使用$ _POST ['控制台']时,它只输出要选择的最后一个变量。我将如何获取所有选定的值(因为我稍后需要它们来输入数据库)。

如果需要,我愿意对我的JS进行彻底的改革,我是一个没有经验的javascript程序员,老实说,当谈到js时,我真的不知道我在做什么。我将学习,但如果我做了一些愚蠢的事情,这意味着我只能选择多个选项,但不能存储每个值,请告诉我。

1 个答案:

答案 0 :(得分:1)

首先,您需要更改var的名称:

name="Consoles"

使用:

name="Consoles[]"

这将使php能够将所有选项放入一个“数组”中 现在如果你在php上写道:

print_r ($_POST['Consoles']);

您可以在html页面上看到每个var。