如何使用 jQuery 将动态密钥对值发送到 PHP?

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


我现在这样做的方式是我将一个变量设置为[]然后推送{'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 中轻松做到这一点感到有些困惑


明月笑刀无情
浏览 112回答 2
2回答

精慕HU

创建 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;});

慕雪6442864

你可以试试下面的代码。    $(".test-button").click( function() {        var inputData = {};        $('.input-data').each(function( index ) {            var name = $(this).attr("name");            var value = $(this).val();            inputData[name] = value;        });    var data = inputData;
打开App,查看更多内容
随时随地看视频慕课网APP