如何通过AJAX发送jquery对象数据到php?
How to send jquery object data through AJAX to php?
我正在使用 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 中将数据类型添加为 JSON,但 AJAX 总是返回错误消息而不是成功。
我的目标是以对象形式发送表单数据,然后在 PHP 文件中,我想获取所有这些对象数据,然后将它们插入到 MySQL 数据库中。
所以,让我知道这怎么可能?
您忘记初始化 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。
我正在使用 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 中将数据类型添加为 JSON,但 AJAX 总是返回错误消息而不是成功。
我的目标是以对象形式发送表单数据,然后在 PHP 文件中,我想获取所有这些对象数据,然后将它们插入到 MySQL 数据库中。
所以,让我知道这怎么可能?
您忘记初始化 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。