2015-06-13 30 views
0

下面是我嘗試實現的:假設我有兩個文件,order.php和print.php。在order.php中有一個用於打印一些數據的按鈕。當用戶點擊按鈕時,我想將一些數據從order.php發佈到print.php。簡單。但是如何?通過ajax發佈數據到新標籤

這是我最後一次嘗試這樣做。

$.ajax({ 
    type: 'POST', 
    url: '../event/print', 
    async: false, 
    data: {json:$("input[name=json]").val(),id:"2"}, 
    success:function(data){ 
     myWindow = window.open('../event/print', "_blank"); 
     myWindow.focus(); 
    }, 
    error:function(data){ 
     swal("Oops...", "Something went wrong.", "error"); 
    } 

它每次都向我顯示錯誤警報和500內部服務器錯誤。 我做錯了什麼?

編輯 我改變了網絡上的一些東西,現在它不顯示任何錯誤。但我不能看到任何$ _POST參數。

+0

我認爲,用戶還多哥打印?如果是這樣,爲什麼使用ajax?另外,你應該檢查服務器上發生了什麼問題。我認爲這是您的網站,所以如果您正在開發中進行調試,或者如果您無法進行調試,請檢查您的日誌。 – Dacker

+0

你只是想添加一個新標籤?如果是這樣,您只需要window.open http://www.w3schools.com/jsref/met_win_open.asp並將數據作爲查詢參數傳遞。你在這裏使用「文件」這個詞是令人困惑的,但在上下文中沒有任何意義。 – Brian

+0

500內部服務器錯誤意味着服務器出現問題,某些異常發生在服務器端。 – Dreamweaver

回答

0

通過這種方式您可以兩次調用頁面../event/print。

第一次作爲POST請求通過AJAX,第二次作爲GET請求,因爲您打開了一個新選項卡。

你所描述的不是一個AJAX請求,它只是一個帶有target =「_ BLANK」的表單。

http://www.w3schools.com/tags/att_form_target.asp

<form action="../event/print" method="post" target="_blank"> 
... 
+0

不完全,但你是對的。我正在使用Nette框架,這裏不容易設置表單動作。所以我使用了會話。 Thanx :) – kristyna

+0

也許分配一個唯一的ID到「打印」一個使用過程中得到。它更乾淨,更具可擴展性。 – B3rn475