我正在使用 Repeater JS,它使用 repeaterVal() 函式從嵌套的轉發器表單中獲取所有輸入欄位值并提供如下物件:

因此,我創建了一個變數var formData = jQuery('.repeater').repeaterVal()并將其傳遞formData給 AJAX 的資料,如下所示:
<?php $dir = plugin_dir_url( __FILE__ ) . "formdata.php"; ?>
<script>
var form = "<?php echo $dir ?>";
$.ajax({
method: "POST",
url: form,
data: formData,
success: function (data) {
console.log("Form is submitted");
},
error: function (jqXHR, exception) {
console.log(jqXHR);
}
});
</script>
然后在 formdata.php 檔案中,我嘗試像這樣回顯這些物件值:
<?php
$a = $_GET;
if(!$a){
echo "Array is empty";
}
else{
print_r(array_keys($a));
}
?>
而且 AJAX 資料總是發送一個空物件,我不知道為什么以及我哪里做錯了。但是在 PHP 檔案中,當我嘗試回顯物件資料時,它顯示它是一個空陣列。我嘗試在 AJAX 中將 dataType 添加為 JSON,但隨后 AJAX 總是回傳錯誤訊息而不是成功。
我的目標是以物件形式發送表單資料,然后在 PHP 檔案中發送,我想獲取所有這些物件資料,然后將它們插入到 MySQL 資料庫中。
所以,讓我知道這怎么可能?
uj5u.com熱心網友回復:
您忘記初始化formData變數。因為你想傳遞一個物件,所以使用JSON.stringify().
做這個
<?php $dir = plugin_dir_url( __FILE__ ) . "formdata.php"; ?>
<script>
var form = "<?php echo $dir ?>";
var formData1 = $('.repeater').repeaterVal();
var formData = new FormData();
formData.append('data',JSON.stringig(formData1));
$.ajax({
method: "POST",
url: form,
data: formData,
processData: false,
contentType: false,
success: function (data) {
console.log(data);
console.log("Form is submitted");
},
error: function (jqXHR, exception) {
console.log(jqXHR);
}
});
</script>
設定processData為 false 將阻止 jQuery 自動將資料轉換為查詢字串。也不要忘記將 設定contentType為false。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363790.html
標籤:查询 阿贾克斯 插件 嵌套中继器 jquery.repeater
