gpt4 book ai didi

javascript - 提交 html 选择作为多维数组,如复选框

转载 作者:行者123 更新时间:2023-12-01 02:49:20 24 4
gpt4 key购买 nike

我正在尝试以与某些复选框相同的方式提交选择字段输入值。

复选框使用索引数组,以组 id 作为索引,并将值提交给 php 服务器,例如。

<input type="checkbox" name="group[33]">
<input type="checkbox" name="group[34]">

我想做的是使用相同的格式,但使用复选框和选择字段来发送相同名称的值,例如。

<select id="select">
<option name="group[35]" value="1">35</option>
<option name="group[36]" value="1">36</option>
</select>

如果我选择第一个选项,它应该将以下内容返回给 php。

$_POST['group'] = [
33 => 1,
35 => 1,
];

是否有任何 native 方法可以实现此目的,而无需使用 javascript 根据选择框的值(例如更改时的值)创建新的隐藏字段。

const select = document.querySelector('#select')

const selected = select =>
select[select.selectedIndex].value

const onChange = e => {
const input = document.createElement('input')
input.type = 'hidden'
input.name = `group[${selected(e.target)}]`
input.value = 1
e.target.form.appendChild(input)
console.log(`<input type="hidden" name="${input.name}" value="1" />`)
}

select.addEventListener('change', onChange, false)
<form>
<select id="select" name="group">
<option value="35">35</option>
<option value="36">36</option>
</select>
</form>

最佳答案

如果您不想使用 javascript,则可以在提交表单后使用 php 来实现。不要将选择框命名为与组相同的名称。

<form>
<select id="select" name="select">
<option value="35">35</option>
<option value="36">36</option>
</select>
</form>

然后在 PHP 中:

<?php     
$groups = $_POST['group'];
$groups[$_POST["select"]] = 1;

foreach($groups as $key => $val) {
echo "$key => $val <br>";
}
?>

关于javascript - 提交 html 选择作为多维数组,如复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com