php - 在表单php中从多个选择中发布未选择的选项
问题描述
我可以在 PHP 中获取我的 selectedFruit 数组,但是如何使用 js 或 jquery 填充隐藏的输入,以便我可以实现我的目标?
<form id="my_form" action method="post">
<select name="selectedFruit[]" multiple="multiple">
<option value="1">Orange</option>
<option value="2">Grape</option>
<option value="3">Apple</option>
<option value="4">Watermelon</option>
</select>
<input hidden name="unselectedFruit[]">
<button type="submit">Submit</button>
</form>
我的目标是在我的 php 文件中执行此操作:
$selected_array_fruit = $_POST["selectedFruit[]"];
$unselected_array_fruit = $_POST["unselectedFruit[]"];
解决方案
如果更改选择,您可以创建新的输入值。
- 创建函数,从选择中过滤未选择的值,并为 PHP 数组创建具有 unselectedFruit[] 名称的新隐藏输入。
- 为更改创建侦听器并重新计算选择选项。
// this is for explain and by default is truncated and filtered by selector
// option:selected and remove the line 'skip selected'
const loadSelectUncheckedValues = function() {
$('[name="unselectedFruit[]"]').remove(); // clean all
$('select[name="selectedFruit[]"] option').each(function() {
if($(this).is(':selected')) return; // skip selected
$('#my_form').append('<input type="hidden" name="unselectedFruit[]" value="'+$(this).val()+'" />');
});
}
// init
loadSelectUncheckedValues();
$('select[name="selectedFruit[]"]').on('change', function() {
loadSelectUncheckedValues();
});
推荐阅读
- javascript - Vue 使用一个 submit() 方法的多个表单
- android - 检查 getIntent().getStringExtra() 是否为空?
- php - Codeigniter - 带有 foreach 的循环表单输入
- gradle - 如何将 Maven 配置文件转换为 gradle
- android - Android App - 将数据从互联网加载到广播接收器
- c# - 如何将列表中的对象传递给另一个控制器索引函数?
- raspberry-pi - cpufreq - 无法更改“scaling_available_frequencies”
- d3.js - 如何将svg的宽度和高度设置为等于它的g?
- c++ - 内存分配 wxWidgets
- typescript - Youtube iframe 需要不在我的打字稿定义中的属性