2012-11-19 27 views
0

我有一個產品表的形式。最初,表格是空的,新產品通過按鈕按鈕動態插入。當用戶按下提交按鈕時,我會將他重定向到一個「preview.php」頁面。但首先我需要在一個函數中構建一個自定義的JSON對象,使用這個對象創建一個POST請求,然後重定向到「preview.php」。那可能嗎 ?有什麼更好的方式來執行此操作?jQuery發佈和重定向php

這裏是我的文件樣本:

//------------ 
//invoice.php 
//------------ 

<form id="newInvoice" action="preview.php"> 
    <table>...</table> 
    <button type="submit">Preview</button> 
</form> 

//----------- 
//invoice.js 
//----------- 

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

    var data = [ 
     "invoicenumber": code, 
     "client": {"firstname":"", "lastname":"", ...}, 
     "products": [{...}, {...}, {...}], //multiple products 
     //building the rest of my data here 
    ]; 

    // I don't know what to do here. 
    // A call to $.post would send my data asynchronously but I want 
    // to send the data as I would do from invoice.php and be redirected 
    // to preview.php. 
}); 

//------------ 
//preview.php 
//------------ 
$data = json_decode($_POST['data']); // is this correct ? 
//... 

謝謝您的答覆。

+0

除非你正在做一些非常具體的JavaScript表單數據轉換,爲什麼要使用JS?簡單地提交表單,因爲你將沒有JavaScript? –

+0

我是否想要從同一個表單中提交2個可能的提交?一個是preview.php,一個是invoice.php? – RMcLeod

+1

當你最終需要'$ _POST'數據時,爲什麼要將數據'POST'爲'JSON'對象? –

回答

0

爲什麼要將數據作爲JSON對象進行POST?何時最終需要$ _POST數據?

但是,如果你熱衷於這樣做,你可以這樣做,使用AJAX。這僅在您執行一些PHP(服務器端)代碼後想要返回到客戶端代碼時才使用。

+0

其實我需要發送不在「invoice.php」中的數據。這些數據是在頁面加載後在js一側建立的。有沒有辦法在提出發佈請求之前添加更多數據? – user1671731

+0

你是什麼意思'其實我需要發送不在「invoice.php」中的數據?是不是數據(JSON或POST)在'invoice.php'中形成? –

+0

在我的「invoice.php」中,我的產品表只包含一行,默認情況下有一個。用戶可以動態添加其他行。由於我的數據在從「invoice.php」發佈時需要具有唯一名稱,因此當我的數據中有多個產品時,如何處理這些選擇? – user1671731