にキーで入力要素の配列を追加します。を取得し、私は次のHTML入力要素を持っていると仮定するといるFormData
<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());
}
}
}
?>
次JSは私のために動作しません、そしてどうやらただ、入力フィールドを取得FORMDATAオブジェクトにそれを追加し、処理のために、AJAXを介してサーバ側に送信するよりも、これに多くのがあります:
<script>
var textinput = document.getElementsByName('textinput');
var data = new FormData();
data.append('textinput[]', textinput);
$.ajax({
type: "POST",
url: "ajax-processing.php",
processData: false,
contentType: false,
cache: false,
data: data,
success: function(data) {
alert("Success!!!");
},
error: function(xhr, textStatus, errorThrown) {
alert('Failed to save data');
}
});
}
</script>
'textinput'変数をtrue配列にするとどうなりますか? 'FormData()'に追加する前に、E.G '[] .slice.call(document.querySelectorAll( 'input [name * = textinput]')); –
SQLインジェクション攻撃! '' – James