2010-05-13 32 views
2

我有一個JavaScript函數收集兩個數組,圖像路徑和標題。 我想用PHP的帖子在同一個頁面$ _ SERVER [ 'PHP_SELF']送,但我真的不知道從哪裏開始..發送jQuery數組到PHP post?

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; ?>"> 

+0

AFAIK jQuery不支持。對於純JS解決方案,請參閱此問題:http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit – Tgr 2010-05-14 01:49:43

回答

1

我倒是說的程序是這樣的:

  1. 添加一些隱藏的字段到表單,一個是你要發送(不是絕對必要的每一個變量,你可以在以後添加的隱藏字段javascript/jquery)。
  2. 使用JavaScript來改變這些隱藏值的值作爲你的JavaScript收集的信息,序列化對象和數組(變化和/或增加,這取決於您是否已經添加在步驟1中隱藏表單域)
  3. 讓您php中的$_POST的值以及反序列化對象和數組。
+0

寫入隱藏字段,這就是工作。乾杯Jeroen! – FFish 2010-05-14 05:58:04

+0

不客氣! – jeroen 2010-05-14 12:55:06

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請求。

+0

我想避免實際的ajax調用。 – FFish 2010-05-14 05:55:14

+0

@FFish,我明白。 – Gutzofter 2010-05-14 13:19:29