Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索带有键的输入元素数组并将其附加到FormData_Javascript_Jquery_Form Data - Fatal编程技术网

Javascript 检索带有键的输入元素数组并将其附加到FormData

Javascript 检索带有键的输入元素数组并将其附加到FormData,javascript,jquery,form-data,Javascript,Jquery,Form Data,假设我有以下HTML输入元素: <input type="text" name="textinput[300]"> <input type="text" name="textinput[450]"> <input type="text" name="textinput[248]"> 我希望检索这些字段的值,将它们附加到FormData对象,以便通过Ajax将它们发送到服务器端。每个数组元素中的键非常重要,因为它表示与每个输入字段关联的唯一ID。我之所以将

假设我有以下HTML输入元素:

<input type="text" name="textinput[300]">
<input type="text" name="textinput[450]">
<input type="text" name="textinput[248]">

我希望检索这些字段的值,将它们附加到FormData对象,以便通过Ajax将它们发送到服务器端。每个数组元素中的键非常重要,因为它表示与每个输入字段关联的唯一ID。我之所以将文本字段名称设置为具有唯一键的数组,是因为我以以下方式设置了服务器端代码:

<?php
if(isset($_POST['textinput'])){
    $IDs = array_keys($_POST['textinput']);

    foreach($IDs as $index => $ID){

        $field_value = $_POST["textinput"][$ID]);

        $query = "UPDATE `tablename` SET fieldname = $field_value WHERE `ID` = $ID";

        try{
            $stmt = $db->prepare($query);
            $result = $stmt->execute();
        }
        catch(PDOException $ex){
            die("UPDATE Failed ".$ex->getMessage());
        }

    }
}
?>
尝试更改

var textinput = document.getElementsByName('textinput');
var data = new FormData();
data.append('textinput[]', textinput);

var data=new FormData();
var textinputs=document.querySelectorAll('input[name*=textinp‌​",;
对于(变量i=0;i
如果将
textinput
变量设置为真数组,会发生什么情况?例如
[].slice.call(document.queryselectoral('input[name*=textfinput])在附加到“FormData()”之前?sql注入攻击<代码>
简单而优雅的解决方案。工作很有魅力,谢谢!
var textinput = document.getElementsByName('textinput');
var data = new FormData();
data.append('textinput[]', textinput);
var data = new FormData();
var textinputs = document.querySelectorAll('input[name*=textinp‌​ut]');
for( var i = 0; i < textinputs.length; i++ )
    data.append(textinputs[i].name, textinputs[i].value);