2012-01-10 44 views
8

Nói rằng tôi có một hình thức HTML như thế này để thu thập được một email từ một người truy cập trang web:Bắt giá trị của đầu vào văn bản HTML

<form name="input" action="handle_email.php" method="post"> 
Email: <input type="text" name="email" /> 
<input type="submit" value="Newsletter" /> 
</form> 

Bây giờ khi vào nút gửi được nhấn tôi có thể nhận được giá trị của lĩnh vực email trong handle_email.php bằng cách sử dụng $ _POST ["email"]. Nhưng nói rằng tôi muốn sử dụng giá trị của văn bản email đầu vào ở nơi khác. Có thể nhận giá trị email "bên ngoài" của quá trình xử lý biểu mẫu không?

CẬP NHẬT: Cảm ơn mọi người vì đã trả lời nhanh. Những gì tôi đang cố gắng làm là nhận được hộp email để làm nhiệm vụ kép. Ví dụ: tôi đã đổi tên nút gửi thành "Bản tin" trong mã ở trên. Khi nhấn nút đó, script handle_email.php sẽ chỉ đăng ký người dùng để nhận bản tin. Tuy nhiên, tôi cũng có liên kết "Đăng ký" trên cùng một trang chuyển hướng khách truy cập đến biểu mẫu đăng ký nơi họ có thể nhập nhiều thông tin khác nếu họ muốn. Bây giờ, nếu người dùng tình cờ nhập dữ liệu vào hộp văn bản email tôi muốn gửi nó đến trang đăng ký để trường có thể được điền trước. Ví dụ:

<a href="http://mywebsite.com/register?user_email="[how can I put the email here?]"/>Register</a> 

Tôi xin lỗi vì không đủ rõ ràng trong bài đăng gốc.

+0

nơi nào khác bạn có muốn sử dụng giá trị của trường email? Nếu nó trong cùng một trang thì JavaScript (hoặc jQuery) sẽ làm. – j08691

+0

Tôi đã cập nhật câu hỏi của mình với nhiều thông tin hơn. – Kevin

+0

Sử dụng các phiên, như tôi đã hướng dẫn trên bài đăng của mình. Phiên là HOPE duy nhất của bạn !!! –

Trả lời

9

Xem jsFiddle tôi ở đây: http://jsfiddle.net/fuDBL/

Bất cứ khi nào bạn thay đổi trường email, liên kết được cập nhật tự động. Điều này đòi hỏi một lượng nhỏ jQuery. Vì vậy, bây giờ biểu mẫu của bạn sẽ hoạt động khi cần, nhưng liên kết của bạn sẽ được cập nhật động để khi ai đó nhấp vào nó, nó chứa những gì họ đã nhập trong trường email. Bạn nên xác thực đầu vào trên trang nhận.

$('input[name="email"]').change(function(){ 
    $('#regLink').attr('href')+$('input[name="email"]').val(); 
}); 
+0

Cảm ơn, tôi đã có thể làm cho nó hoạt động dựa trên mã này. – Kevin

18

Nếu bạn muốn sử dụng giá trị của đầu vào email ở một nơi khác trên cùng một trang, ví dụ để thực hiện một số loại xác thực, bạn có thể sử dụng JavaScript. Trước tiên tôi xin gán một "id" thuộc tính để hộp email của bạn:

<input type="text" name="email" id="email"/> 

và sau đó tôi sẽ lấy giá trị với JavaScript:

var email = document.getElementById('email').value; 

Từ đó, bạn có thể thực hiện xử lý bổ sung vào giá trị của 'e-mail'.

1

Phụ thuộc vào nơi bạn muốn sử dụng email. Nếu nó ở phía máy khách, mà không gửi nó đến một tập lệnh PHP, thì JQuery (hoặc javascript) có thể thực hiện thủ thuật.

Tôi đã tạo một fiddle để giải thích giống nhau -

Nó có một cảnh báo mà đi tắt vào tải và khi bạn nhấp vào hộp riêng của mình.

1

Có, bạn có thể sử dụng jQuery để làm cho điều này được thực hiện, ý tưởng là

Sử dụng một giá trị ẩn trong hình thức của bạn, và sao chép giá trị từ hộp văn bản bên ngoài để giá trị ẩn này ngay trước khi nộp mẫu đơn.

<form name="input" action="handle_email.php" method="post"> 
    <input type="hidden" name="email" id="email" /> 
    <input type="submit" value="Submit" /> 
</form> 

<script> 
    $("form").submit(function() { 
    var emailFromOtherTextBox = $("#email_textbox").val(); 
    $("#email").val(emailFromOtherTextBox); 
    return true; 
    }); 
</script> 

cũng thấy http://api.jquery.com/submit/

0

chỉ cần sử dụng dễ dàng javascript:

<form name="input" action="handle_email.php" method="post"> 
 
    Email: <input type="text" name="email" /> 
 
    <input type="submit" value="Newsletter" /> 
 
</form> 
 

 
<a href="javascript:var the_mail = document.getElementByName('email').value; window.location = 'http://mywebsite.com/register?user_email=' + the_email;">Register</a>

bạn cũng có thể thay đổi kiểu đầu vào email như:

Các vấn đề liên quan