2011-03-30 15 views
0

這是我的第一個Stackoverflow問題,我正在教自己的PHP,所以我很抱歉如果這個問題是相當基本的。我在本網站和其他網站上搜索過,看到部分答案,但大多數都過於具體(還有其他複雜性),因此我不知道代碼做了什麼。將表單輸入數據轉移到多個地方,其中一個是提交彈出框

我試圖在我的網站的一個頁面上創建一個表單,當提交時將數據發送到一個電子郵件地址,並且還彈出一個窗口。此外,還有一個條件文本框,如果填寫,將數據發送到第二個電子郵件地址。彈出窗口將顯示用戶從前一頁輸入的數據,儘管CSS具有高度的風格。

<form action="php_page.php" method="POST"> 
    <input type="text" id="name" value="Name" /><br /> 
    <textarea id="goal1" value="Short-Term Goal"></textarea><br /> 
    <textarea id="goal2" value="Mid-Term Goal"></textarea><br /> 
    <textarea id="goal3" value="Long-Term Goal"></textarea><br /> 
    <input type="text" id="email" value="Email Address" /><br /> 
    <input type="submit" OnClick="PopUp()" id="submit" /> 
</form> 

在php_page.php,從我讀過,我需要某種類型的基本結允許的形式發送其數據的多個位置。不幸的是,我並不真正瞭解這將會是什麼樣子,也不知道如何設置條件來發送帶有填寫電子郵件地址的任何表單到附加位置。

彈出的劇本目前看起來是這樣的:

function PopUp() { 
    window.open("php_page.php", "myWindow", "status = 0, height = 500, width = 500, resizable = 0") 
} 

所以,我想的問題是:(1)這是去了解它的正確方法? (2)php_page.php最終看起來像是指導POST數據? (3)我是否需要爲PopUp()重新定向創建第三個頁面,而不是回到php_page.php? (4)這仍然適用於HTTPS?

謝謝大家提前。即使沒有人回答這個問題,這裏的社區已經對PHP做了任何有關PHP的學習都比其他方式更簡單。

回答

0

你想要做的是強制帖子通過彈出窗口。最簡單的方法是在<form>標記上放置一個target="myWindow",儘管這不再是有效的HTML,但是受所有主流瀏覽器的支持。那會彈出一個新窗口並通過該窗口發送帖子。然後,您的服務器端腳本將啓動,處理帖子,並可以以「高度風格化」的格式返回表單數據。

您不能「告訴」PHP腳本將數據發送到另一個瀏覽器窗口。網絡服務器沒有windows的概念,只有HTTP請求和響應。這些請求也是基於每個窗口完成的,因此您不能說「從窗口X發送數據,但將答覆發送到窗口Y」。

另一種方法是通過AJAX請求發送POST。 JavaScript代碼然後可以彈出新窗口並動態地填充它的內容,但是這全部取決於啓用了Javascript的客戶端,所以不是100%可靠的。

+0

謝謝你的回答,馬克。我不想使用JavaScript解決方案解決上述問題。有沒有一種解決方案是不依賴於JavaScript的有效HTML?我也不確定你在第二段中的「告訴」中引用了什麼。我的印象是,你可以將值發送到php腳本,並通過onclick事件讓腳本在新窗口中運行。這不是這種情況嗎? – 2011-03-31 00:48:50

相關問題