javascript
  • jquery
  • ajax
  • 2017-04-22 50 views 0 likes 
    0

    我正在使用以下代码将表单结果检索到数组中。这会根据$ result_columns_c数组的输入向用户显示一些复选框。使用JavaScript和JQuery从表单中检索密钥

    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> 
    

    但是,这只会创建一个带有值的数组。我怎样才能用键($ value1)创建一个数组,或者最好只是从表单中检索结果作为关联数组?

    +2

    尝试[serializeArray()](http://api.jquery.com/serializeArray/) – charlietfl

    +1

    '返回{[input.name]:input.value}' – guest271314

    +0

    @ guest271314有没有简单的方法来获取值([$ value1]),而不是获取整个名称(input_options_sqlUpdate_a [$ value1])? –

    回答

    1

    你可以反对在Array.from().map()呼叫解构,计算属性返回反映.nameinput为重点,值对.value的对象。您可以使用.replace()RegExp/^.+\[|\]/g匹配.name财产的起始字符,包括[字符或]字符,并将替换字符设置为空字符串""

    var inputs = $("input"); 
     
    
     
    var input_a = Array.from(inputs, function({name, value}) { 
     
           return Array(name.replace(/^.+\[|\]/g, ""), value); 
     
           }); 
     
           
     
    console.log(input_a);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <input type='checkbox' class='input_options_sqlUpdate_a' 
     
    name='input_options_sqlUpdate_a[$value1]' value='$value2'> 
     
    <input type='checkbox' class='input_options_sqlUpdate_a' 
     
    name='input_options_sqlUpdate_a[$value3]' value='$value4'>

    +0

    这有效。但是,它会返回整个名称(input_options_sqlUpdate_a [$ value1]),而不仅仅是值([$ value1])。有没有简单的方法来获得价值? –

    +0

    这会将每个[$ value1]作为一个数组返回。我需要能够自动连接不同的数组。我想我可以从这里找到一种办法,但如果你能告诉我,那将会很棒。 –

    +1

    你是什么意思“自动连接不同的阵列”? – guest271314

    相关问题