Ajax表单提交是倍增内容

时间:2017-05-26 18:44:47

标签: jquery loops each

我有一个ajax函数,在发送之前,它会执行以下操作:

function prepareGalleries() {
    if($('.galleryField').length) {
        $('.galleryField').val('');
        $('.galleryField').each(function() {
            var images = '';
            var galleryField = $(this).attr('name');
            $('#' + galleryField + ' li').each(function() {
                images += $('img', this).attr('data-src') + ';';
            })
            images = images.replace(/;+$/, "");
            $(this).val(images);
         })
    }
}

function saveFields(form) {
    prepareGalleries();
    $.ajax({
      type: "POST",
      data: $("#" + form).serialize(),
      success: function(data)
      {
           window.location.reload();
      }
     });
 }

它查找隐藏的.galleryField输入,然后为每个输入获取匹配的galleryBox中的图像(id与galleryField的名称相同)。

然后获取每个图像data-src值并将其添加到字符串中,并将其放入galleryField输入中。

这样可以,但是在每次保存时它会复制自己 - 所以首先保存我可能有两个图像,然后再次保存(不添加更多图像)4,然后8等等 ...

在我的php中,我有类似的东西:

checkAction();
function checkAction()
{
   if ( $_POST['action'] === 'save' ) {
       saveAction();
   }
}

function saveAction()
{
    if ( $_POST['form'] === 'page' ) {
        foreach ( $_POST as $item => $value ) {
            if ( $item != 'currentPage' && $item != 'form' && $item != 'action')      
            {
                save( 'pages', $GLOBALS['currentPage'], $item, $value );
            }
        }
     } else {
        foreach ( $_POST as $item => $value ) {
            if ( $item != 'form' && $item != 'action' ) {
                save( $_POST['form'], $item, $value );
            }
        }
    }
}

function save()
{
    if ( !$GLOBALS['loggedIn'] )
        return;
    $numArgs = func_num_args();
    $args    = func_get_args();
    switch ( $numArgs ) {
        case 2:
            $GLOBALS['db'][$args[0]] = $args[1];
            break;
        case 3:
            $GLOBALS['db'][$args[0]][$args[1]] = $args[2];
            break;
        case 4:
            $GLOBALS['db'][$args[0]][$args[1]][$args[2]] = $args[3];
            break;
     }
    file_put_contents( 'database.js', json_encode( $GLOBALS['db'], JSON_PRETTY_PRINT ) );
}

所以它似乎要附加到值或我的图像循环有点破碎。

我对这个问题感到宽松......已经摸不着头几个小时了。尝试过我能想到的一切。

上面的ajax和php适用于其他领域 - 只是不是这个画廊领域......这就是我觉得如此困惑。

任何建议都将不胜感激。

0 个答案:

没有答案