首页 > 解决方案 > 如何使用 jQuery 将动态密钥对值发送到 PHP?

问题描述

我有一些将数据发送到 PHP 函数的 jQuery 代码,并且将发送的一些数据是键 => 值对。

我现在这样做的方式是设置一个变量[],然后 push {'string1':'string2'},然后发送这个变量。

所以像这样:

$(".test-button").click( function() {
        var inputData = [];
        $('.input-data').each(function( index ) {
            var name = $(this).attr("name");
            var value = $(this).val();
            inputData.push( { name : value } );
        });
var data = {
            testData: inputData
        };

当我在 PHP 中获取数据时,如果我发送的是 3 个键值对,那么 print_r 输出如下所示:

Array
(
    [0] => Array
        (
            [name] => 1
        )

    [1] => Array
        (
            [name] => 2
        )

    [2] => Array
        (
            [name] => 3
        )

)

我真正想要的是在 PHP 方面做一些类似的事情

foreach($myInputData as $key => $value)
{
   $output .= $key . " : " . $value . " ";
}

我对如何在 jQuery/JavaScript 中轻松做到这一点有点困惑

标签: javascriptphpjquery

解决方案


创建 javascript 对象时,name它被视为文字,它没有使用您之前定义的变量。你可以这样做inputData.push( { [name] : value } );。这将每次创建一个新对象并将其添加到数组中,但您似乎正在寻找只发送一个对象的解决方案:

var inputData = {};
$('.input-data').each(function(index) {
  var name = $(this).attr("name");
  var value = $(this).val();
  inputData[name] = value;
});

推荐阅读