【问题标题】:Array to php via ajax通过 ajax 到 php 的数组
【发布时间】:2012-05-07 04:31:58
【问题描述】:

经过一番折腾,我得到了这段代码,向我显示了一个警报,其中包含已检查的正确 id 数组:

alert($("input[name=our_types]:checked").map(function () {return this.value;}).get().join(","));

我需要能够将它传递给这里的 post action 函数:

    $.post(action, {
        form_name: $('#form_name').val(),
        site_id: $('#site_id').val()


    },

我已经尝试过:

   var our_types = $("input[name=our_types]:checked").map(function () {return this.value;}).get().join(",");

然后像这样传递它:

    $.post(action, {
        form_name: $('#form_name').val(),
        site_id: $('#site_id').val(),
                    our_types: $('#our_types').val()

    },

但无济于事。我已经坚持了好几个小时了,也许新的眼光会有所帮助。

这是另一个示例的工作代码:

jQuery(document).ready(function(){

    $('#contactform').submit(function(){

        var action = $(this).attr('action');

        $("#message").slideUp(750,function() {
        $('#message').hide();

        $('#submit')
            .after('<img src="assets/ajax-loader.gif" class="loader" />')
            .attr('disabled','disabled');

        $.post(action, {
            USERNAME: $('#USERNAME').val(),
            PASSWORD: $('#PASSWORD').val()
        },
            function(data){
                document.getElementById('message').innerHTML = data;
                $('#message').slideDown('slow');
                $('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
                $('#submit').removeAttr('disabled');
                if(data.match('success') != null) $('#contactform').slideUp('slow');

            }
        );

        });

        return false;

    });

});

【问题讨论】:

  • 您要发布到的文件名是什么?我怀疑这是“行动”
  • Blake,感谢您的回复,但是当我提取其中的 our_types 部分并提交表单时,该功能可以完美运行。 jquery 滑动表单并给我很好的结果,所以不是这样。
  • 您是否看到浏览器控制台来检查发布请求是否正在发送?
  • 是的 - form_name:prd_svc site_id:112 这就是它发送的全部内容,因为我无法让它发送our_types。我无法正确设置变量
  • 控制台中的响应如下所示:
    Array ( [form_name] => prd_svc [site_id] => 112 ) 

标签: php jquery arrays post


【解决方案1】:

你很亲密。

当你

alert($("input[name=our_types]:checked").map(function () {return this.value;}).get().join(","));

看到内容就是你想要的。

您需要做的就是将其分配给一个变量:

var our_types_vals = $("input[name=our_types]:checked").map(function () {return this.value;}).get().join(",");

并将该变量传递给 post() 函数,如下所示:

$.post(action, {
    form_name: $('#form_name').val(),
    site_id: $('#site_id').val(),
    our_types: our_types_vals
  },  // ... other codes
);

您也可以绕过将其分配给变量,直接在属性-值对对象内部传递操作,如下所示:

$.post(action, {
    form_name: $('#form_name').val(),
    site_id: $('#site_id').val(),
    our_types: $("input[name=our_types]:checked").map(function () {return this.value;}).get().join(",")
  },  // ... other codes
);

请注意删除操作上的结束分号,以防止对象字面量内的语法错误。

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    相关资源
    最近更新 更多