jQuery AJAX从.each函数中获取值并将其发送给AJAX

时间:2017-03-03 06:39:18

标签: javascript jquery ajax

如何在我的脚本下面设置jQuery AJAX。

$('#btnUpdate').click(function()
{
    $('#result').html('');
    $('.moduleIDInput').each(function()
    {
        var uid = $(this).attr('id');
        var moduleID = $(this).val();

        var chk = new Array();

        $('#result').append('<h3>' +$(this).val() + '</h3>');

        $('input[data-uid=' + uid + ']:checked').each(function()
        {
            chk.push($(this).val());

            $('#result').append('<div>'+ $(this).val() + '</div>');
        });
    });

    $.ajax(
    {
        url: "updateGroupAccess.php",
        type: "POST",
        data:
        {
            moduleID: moduleID,
            chk: chk
        },
        dataType: "JSON",
        success: function (jsonStr)
        {
            $("#btnUpdate").attr({disabled: true, value: "Update"}).addClass('btn_inact').removeClass('btn_act');;
        }
    });
});

如果我将AJAX函数放在.each函数中,它将提交超过1。 但我需要把它放在外面,发现问题moduleIDchk未找到。

2 个答案:

答案 0 :(得分:0)

范围问题。在点击之外定义uidmoduleID

var uid="";
var moduleID="";
$('#btnUpdate').click(function()
{
    $('#result').html('');
    $('.moduleIDInput').each(function()
    {
         uid = $(this).attr('id');  // Assign value for uid 
         moduleID = $(this).val();

答案 1 :(得分:0)

在全局范围内定义变量: 创建一个名为sendAjax的函数,并在按钮单击时调用它。 同时,您的所有数据都将存储在数据全局变量(对象)中。

  var data={};
$('#btnUpdate').click(function()
{
    $('#result').html('');
    $('.moduleIDInput').each(function()
    {
        var uid = $(this).attr('id');
        data.moduleID = $(this).val();
        $('#result').append('<h3>' +$(this).val() + '</h3>');

        $('input[data-uid=' + uid + ']:checked').each(function()
        {
            data.chk.push($(this).val());

            $('#result').append('<div>'+ $(this).val() + '</div>');
        });
    });
  sendAjax();
});
  function sendAjax()
  {
          $.ajax(
    {
        url: "updateGroupAccess.php",
        type: "POST",
        data:
        {
            moduleID: data.moduleID,
            chk: data.chk
        },
        dataType: "JSON",
        success: function (jsonStr)
        {
            $("#btnUpdate").attr({disabled: true, value: "Update"}).addClass('btn_inact').removeClass('btn_act');;
        }
    });

  }