HTML多个选择选择的JS提交表格



我在 PHP中有一个简单的选择为echo(使用 Chosen JS):

echo" <tr>
<th>By country:<br />
<select id="firstselect" name="country[]" 
    data-placeholder="Country..." multiple class="chosen-select">
        <option value="dontcare">dontcare</option>";
        foreach ($states as $state) {
            echo "<option value="" . $state->stat .
                 "" >" . $state->stat . "</option>";
         }
echo "</select> </th></tr>";

从中提交和刷新页面值之后,未选择。

如果我只选择一个选择,这对我有用:

var my_val = '<?=$_POST['price']?>'; 
$("#cenan").val(my_val).trigger("chosen:updated");

,但我不知道如何将其设置为在数组中选择。您能帮我并向我展示一些代码吗?我花了几个小时而没有任何结果。

您将表单数据发布到同一页面,然后刷新它,对吗?

如果是这样,则可以通过检查$_POST['country']数组中是否存在该页面值时,只需稍微更改PHP即可将所选选项标记为所选选项。

另外,当您将回声输出封闭在双引号中时,无需逃脱变量,因为PHP无论如何都会解析它们,只需在字符串中使用单个引号,其中您想要HTML中的引号。眼睛更容易。

foreach ($states as $state) {
    if ((!empty($_POST['country'])) && (in_array($state->stat, $_POST['country']))) {
        echo "<option value='$state->stat' selected>$state->stat</option>";
    } else {
        echo "<option value='$state->stat'>$state->stat</option>";
    }
}

让我们假设您的html选择如下:

<select id='firstselect' multiple class="chosen-select" >
<option value='a'>A</option>
<option value='b'>B</option>
<option value='c'>C</option>
</select>

这是解决方案:

<?php
$arr = ['a','b']; // PHP Sample Array
?>

var js_json =  '<?php echo json_encode($arr); ?>';
var js_json_string = JSON.stringify(js_json);
var js_json_array = JSON.parse(js_json_string); // ['a','b']

// initialize
$("#firstselect").chosen();
// Loop for making HTML <select> options selected.
$.each(js_json_array,function(i,v){
$('#firstselect option[value=' + v + ']').attr('selected', true);
});
//Updating Chosen Dynamically
$("#firstselect").trigger("chosen:updated");

最新更新