Ajax&;JavaScript Multiple Select onchange在选择3个项目后失败

Ajax&;JavaScript Multiple Select onchange在选择3个项目后失败,javascript,php,ajax,Javascript,Php,Ajax,我有一个带有以下代码的select输入: <select name="color" id="color" multiple class="form-control chzn-select" tabindex="8" onchange="autosave(this.id,this.value)"> 就HTML而言,如果这有什么不同,我将使用Bootstrap3,下面是我填充选择选项的方式: <?php $colors = array('Red','Blue','Yellow',

我有一个带有以下代码的select输入:

<select name="color" id="color" multiple class="form-control chzn-select" tabindex="8" onchange="autosave(this.id,this.value)">
就HTML而言,如果这有什么不同,我将使用Bootstrap3,下面是我填充选择选项的方式:

<?php
$colors = array('Red','Blue','Yellow','Purple','Green','Orange');
foreach($colors as $c) {
    $selected = '';

    if(in_array($c, $_SESSION['array']['colors'])) {
        $selected = 'selected';
    }

    echo '<option value="'.$c.'" '.$selected.'>'.$c.'</option>';
}
?>


你知道为什么会这样吗?我的save.php页面正在成功地将所有项目放置在数组中,ajax只是出于某种原因发送了不正确的值

因为您已经在使用jQuery,所以最好只使用
$(this).val()
从您的select命令中获取所选选项。下面是我使用您提供的代码想到的一把小提琴:

您可以考虑的另一条路径是使用jQuery的代码>序列化()/<代码>或<代码> .SerialZielayRay](/Case>)函数,在通过Ajax提交数据时获取表单的所有值。但是,如果您希望一次只执行一个元素,那么您的方法就可以正常工作

以下是指向这些功能的几个链接:


我把它扔了好几次,但显然不在正确的地方。谢谢
<?php
$colors = array('Red','Blue','Yellow','Purple','Green','Orange');
foreach($colors as $c) {
    $selected = '';

    if(in_array($c, $_SESSION['array']['colors'])) {
        $selected = 'selected';
    }

    echo '<option value="'.$c.'" '.$selected.'>'.$c.'</option>';
}
?>