2012-10-11 19 views
1

我有一個表單的輸入域 - 讓說:從輸入到下一頁上的輸入是否有價值?

<form action="/subscribe"> 
    <input type="emailadress" id="emailme" value="Email Address" /> 
    <input type="submit" value="Subscribe" class="cat_button" /> 
</form> 

那麼接下來的頁面(subscribe.html)對我有一個完整的形式。

我想要做的是讓用戶輸入他們的電子郵件地址,然後按訂閱。

它需要你subscribe.html

當你進入該頁面,您的電子郵件地址已經預填充。

編輯:我沒有訪問服務器端編程 - 只有Javascript,HTML和CSS。

我正在研究HTML5會話存儲,但沒有運氣。

這可能嗎?

+0

這是在PHP非常簡單。你打開這樣的解決方案,或者你是否嚴格遵循html5存儲? – Mike

+0

你正在爲你和潛在的用戶創造太多的工作。爲什麼不創建鏈接「訂閱」並讓用戶填充下一頁上的所有內容? – Joseph

+0

@Mike不幸的是,在這種情況下,PHP不是一種選擇,因爲它是一個無法訪問PHP語言的封閉系統。 – Justin

回答

1

這肯定是可能的。如果你想要一個完全客戶端解決方案,一種方法可能是使用Javascript單擊偵聽器捕獲點擊事件,選擇表單中的兩個元素並讀取它們的值,並將這些值放入會話存儲中。在subscribe.html頁面的Javascript中,請務必從會話存儲中讀出值並在subscribe.html頁面中填寫相應的輸入元素。

的Javascript + jQuery的的第一個HTML頁面

$(document).ready(function() { 
("myform").click(function() { 
    var useremail = ("selector_for_email").val(); 
    sessionStore.setitem("useremail", useremail); 
    // Don't preventDefault, allow form POSTing 
}); 
}); 

的Javascript + jQuery的第二個HTML頁面

$(document).ready(function() { 
     var useremail = sessionStore.getItem("useremail"); 
     ("input_elem").val(useremail); 
    }); 

如果你開的是涉及到客戶端和服務器的解決方案,只是允許用戶提交表單(發送POST消息)。在訂閱的路由處理程序中,讀出已發佈的數據並使用輸入值填充視圖模板中的元素。

Python的後端

@app.route('/subscribe') 
def subscribe(): 
    if request.method == 'POST': 
     useremail = request['name_attr_of_email_input'] 
     return render_template(subscribe.html, email=useremail) 
+0

您的第一套Javascript + Jquery在頂部讓我在需要的地方。謝謝您的幫助。 – Justin

0

要做到這一點與PHP,你需要做的就是提交你創建的表單(在向表單元素添加'method ='post'',並給你的文本輸入名稱,說,「emailme」)。

<form action="/subscribe.php" method="post"> 
    <input type="emailadress" name="emailme" id="emailme" value="Email Address" /> 
    <input type="submit" value="Subscribe" class="cat_button" /> 
</form> 

從那裏,你會改變subscribe.html到PHP文件,並且做這樣的事情上subscribe.php:

<?php 
$email_address = $_POST['emailme']; 

echo '<input type="emailadress" name="emailme2" id="emailme2" value="' . $email_address . '" />'; 
?> 

或者:

<?php 
$email_address = $_POST['emailme']; 
?> 

<input type="emailadress" name="emailme2" id="emailme2" value="<?php echo $email_address; ?>" />