javascript - 为什么这个数组没有被传递?

标签 javascript php jquery forms

将表单数据发送到 PHP 脚本进行处理的简单脚本。关联数组中的数据和控制台的输出表明它存在。使用 jquery AJAX 函数传递数据,但 PHP 脚本不接收数组。但是,如果我将数据硬编码到函数中,数据就会被传递。

如果尝试将 AJAX 功能“方法”设置为 POST 并删除该选项。我尝试了不同的数组格式。将数组作为硬编码数组的一部分传递。

Javascript端

function saveInformation(e) {
            var d       = []
            var f       = $(e)[0].id; //Form name
            var formData    = $('#'+f).serializeArray();

            formData.forEach(function(item){
                d[item.name] = item.value;  
            })


            console.log('data',d)

            $.ajax({
                data:       d,
                url:        "TableUpdate.php"
            })
            .done(function(e) { $('#agentGeneralInfoTitle').text('Agent General Information (Saved)'); console.log(e);})
            .fail(function(e) { 
                alert("save failed\n" + e.responseText);  console.log(e);
            });

        }

console.log 命令显示变量 d 中的数据。所有数据均已存在且格式正确。

PHP端

<?
require_once('/var/www/Debugging/ChromePhp.php');
chromePHP::log($_REQUEST,$_POST);
:
:
:
?>

这会打印出“[],[]”。它正确完成并确定数据不存在。

我希望传递数据并且 chromePHP::log 显示包含数据的数组。

最佳答案

var d 应该是一个对象而不是数组。

数组仅在 JavaScript 中具有数字索引

改变

var d = []

var d = {}
<小时/>

同时使用 serialize() 而不是 serializeArray() 会使其更简单,因为您不需要循环并创建 d完全没有

  function saveInformation(e) {
        // assuming `e` is form element
        var formData    = $(e).serialize();

        $.ajax({
            data:       formData    ,
            url:        "TableUpdate.php"
        })
        .done(function(e) { $('#agentGeneralInfoTitle').text('Agent General Information (Saved)'); console.log(e);})
        .fail(function(e) { 
            alert("save failed\n" + e.responseText);  console.log(e);
        });

    }

关于javascript - 为什么这个数组没有被传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383150/

相关文章:

javascript - 出现在父元素顶部的子元素的框阴影

javascript - 从数据库中获取选择选项的列值

php - wordpress,如何更改页脚中的信息?

php - 使用 Alice Fixtures 为 Nested Set 实体生成 Doctrine fixture 数据

php - mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

Jquery 验证和 Summernote

javascript - 如何获取 Angular js 表达式以考虑来自 api 的 css 值并将其应用于其卡片

javascript - ajax完成后调用一个函数

javascript - 互斥图像

javascript - Ajax 调用后 Fancybox 未关闭