将jQuery数组发送到PHP帖子?

时间:2010-05-13 23:54:22

标签: php jquery forms post submit

我有一个javascript函数,可以收集两个数组,图像路径和标题。 我想用PHP的帖子发送到同一页面$ _SERVER ['PHP_SELF'],但我真的不知道从哪里开始..

PHP:

if (isset($_POST['Submit'])) {
    $edit_photos->update_xml($edit_photos->album_id, $_POST['src_arr'], $_POST['caption_arr']);
    // prevent resending data
    header("Location: " . $_SERVER['PHP_SELF'] . "?ref=" . $ref);
}

JS:

function getImgData() {
    var imgData = { 'src_arr': [], 'caption_arr': []};
    $('.album img').each(function(index){
        imgData.src_arr.push($(this).attr('src'));
        imgData.caption_arr.push($(this).attr('alt'));
    });
    return imgData;
};

HTML:

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] . "?ref=" . $ref; ?>">

    

2 个答案:

答案 0 :(得分:1)

我会说程序是这样的:

  1. 在表单中添加一些隐藏字段,一个用于您要发送的每个变量(不是绝对必要的,您可以稍后使用javascript / jquery添加隐藏字段)。
  2. 使用javascript更改这些隐藏值的值,因为您的javascript收集信息,序列化对象和数组(更改和/或添加,具体取决于您是否已在步骤1中添加了隐藏的表单字段。)
  3. 从php中的$_POST获取值并反序列化对象和数组。

答案 1 :(得分:0)

这是一个jQuery POST请求:

$('form').submit(function() {
    $.post('ImageProcessor.php', 
            { imgdata: getImgData() },
            function() {
                alert('Processed Images');
            });
    return false;
});

由于return false

,这将覆盖默认提交行为

以下是处理帖子的PHP:

if (array_key_exists('imgData', $_POST)) {
    $imgData = json_decode($_POST['imgData']);

    $edit_photos->update_xml($edit_photos->album_id, $imgData['src_arr'], $imgData['caption_arr']);
}

这只是一个ajax POST请求。

相关问题