2016-06-28 18 views
0

我有一個包含一個所見即所得的編輯形式,和兩個提交按鈕:爲形式設定不同的目標與多個提交按鈕

<input type='submit' name='pdf' value='PDF Preview'/> 
<input type='submit' name='save' value='Save'/> 

「PDF」動作顯示編輯器爲PDF輸出的內容。 「保存」操作是一種常規表單提交。我希望PDF輸出在新標籤中打開,並且無法確定如何執行此操作。

「輸入」標籤沒有「目標」屬性。我可以在「form」標籤中添加一個「target = _blank」,但是這會在新標籤頁中提交我的「保存」動作,這是我不想要的。

我試圖取代 「PDF」 這個提交按鈕:

<a href="same_page" target="_blank" onclick="submitForm();"> 

這沒有奏效。表單在當前選項卡中提交,新選項卡查詢在$ _POST中沒有收到任何內容。

有沒有我不知道的魔術?

注:服務器端代碼PHP

+0

您的JavaScript代碼在哪裏?,顯示您的完整代碼以瞭解您想要的內容以及您嘗試的內容。 –

+1

不需要2個目標。您可以在PHP代碼中檢查「pdf」或「save」操作。您將在$ _POST數組中具有'pdf'和'save'鍵 – newage

回答

2

使用按鈕和onclick事件與jQuery。

<button type='submit' name='pdf' onclick="$('form').attr('target', '_blank');">PDF Preview</button> 
<button type='submit' name='save' onclick="$('form').attr('target', '');">SAVE</button> 
0

你也許可以嘗試使用這個jQuery。 例如,當單擊PDFPreview按鈕時,jQuery可以將表單輸入的值保存到Cookie中。然後它將重定向到一個新選項卡中的PDFPreview頁面。然後PDFPreview頁面將讀取cookie。 如:

<script> 
var input1 = null; 
function previewPdf() 
{ 
    input1 = $("#input1").text(); 
    document.cookie = "input1=" + input1; 
    window.open("/path/to/pdfPreview.php", '_blank') 
} 
</script> 
<form action="whateverpage" method="post"> 
<input type="text" name="input1" id="input1"> 
<input type="button" onClick="previewPdf();" value="Preview PDF"> 
<input type="submit" value="Save"> 
</form> 
1

因此,在短期你一個表格+兩個提交按鈕

第一個按鈕:在相同的標籤中打開

第二個按鈕:在新標籤中打開

提交後您想知道哪一張已提交

解決方案:

添加兩個提交按鈕具有不同的行爲是不可能 所以你需要JS幫助或jQuery的(拉維Hirani解決方案是完美的)

要知道哪個按鈕提交,你應該給不同名字(NEWAGE評論是完美的)

所以這只是簡單的例子做了你要尋找的魔法:

<?php 
//print the post data 
var_dump($_POST); 
?> 


<script type="application/javascript" src="https://code.jquery.com/jquery-3.0.0.min.js"></script> 
<form action="test.php" method="POST"> 
    <!-- just simple textarea --> 
    <textarea rows="4" cols="50" name="textarea"> 
     text here 
    </textarea> 

    <!-- new tab submit button --> 
    <input type="submit" name="New_Window" value="New Window" onclick="$('form').attr('target', '_blank');" /> 
    <!-- same tab submit button --> 
    <input type="submit" name="Same_Window" value="Same Window" onclick="$('form').attr('target', '');" /> 

</form> 
相關問題