使用JavaScript和JQuery从表单检索密钥
我使用以下代码将表单结果检索到数组中。这将根据$result\u columns\u c数组的输入向用户显示多个复选框使用JavaScript和JQuery从表单检索密钥,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用以下代码将表单结果检索到数组中。这将根据$result\u columns\u c数组的输入向用户显示多个复选框 foreach($result_columns_c as $key=>$value){ echo "<td width='20%'><input type='checkbox' class='input_options_sqlUpdate_a' name='input_options_sqlUpdate_a[$value]' value='$value
foreach($result_columns_c as $key=>$value){
echo "<td width='20%'><input type='checkbox' class='input_options_sqlUpdate_a'
name='input_options_sqlUpdate_a[$value]' value='$value'> $key</td>";
}
<script>
function optionsSubmit(){
var inputs = $('.input_options_sqlUpdate_a:checked');
input_a = [].map.call(inputs, function( input ) {
return input.value;
})
$.get("../index.php", {input_sqlQuery_a:input_a, sqlQuery:'true', sqlUpdate:'true', serialize:'true'}, function(data){
$("#test").html(data);
});
}
</script>
foreach($result\u columns\u c as$key=>$value){
回显“$key”;
}
函数选项提交(){
变量输入=$('.input_options_sqlUpdate_a:checked');
input_a=[].map.call(输入,函数(输入){
返回input.value;
})
$.get(“../index.php”,{input\u sqlQuery\u a:input\u a,sqlQuery:'true',sqlUpdate:'true',serialize:'true',函数(数据){
$(“#测试”).html(数据);
});
}
然而,这只会创建一个包含值的数组。如何使用键($value1)创建一个数组,或者最好只从表单中检索结果作为关联数组?您可以在
array.from()
或.map()
调用,computed属性返回一个对象,该对象以键、值对的形式反映输入的.name
和.value
。您可以使用.replace()
与RegExp
/^.+\[\]/g匹配.name
属性的开头,并包括[/code>字符或]
字符,替换设置为空字符串”
var输入=$(“输入”);
var input_a=Array.from(输入,函数({name,value}){
返回数组(name.replace(/^.+\[\]/g,“”),值);
});
控制台日志(输入a)代码>
Tryreturn{[input.name]:input.value}
@guest271314是否有一种简单的方法来获取值([$value1]),而不是获取整个名称(input\u options\u sqlUpdate\u a[$value1])?@charlietfl serializearray()可以工作,但是如何让它与$('.input\u options\u sqlUpdate\u a:checked')一起工作?它不返回数组吗?有没有一种简单的方法可以从检查的值中获取作为数组的输入?您所说的“自动连接不同的数组”是什么意思?@ArthurWalker您可以包括您正在讨论的html
?请参见编辑的问题不包含您描述的呈现的html
。由两个
元素生成的html
是什么,以及预期生成的数组或对象数组是什么?@ArthurWalker从两个
元素生成一个数组[[0,$value1],[1,$value2]
?或者一个对象数组,其中key是数组[{0:$value1},{1:$value2}]
的索引?原始问题似乎没有提到索引,而是在.name
属性中获取被[
,]
包围的值。是吗?$。map()
将返回的数组元素连接到现有数组。您可以使用Array.from()
或您的原始方法[].map.call()