我有一个关于尝试将用户输入的数据附加到重定向网址的问题。我使用在线数据库/筹款公司(Salsa)进行支持者注册。我希望有一个表单,人们可以只输入他们的电子邮件和zip,将提交保存到数据库中(如此提交重定向)然后如果那个人想要填写更多信息,那么会出现另一个表单但是他们可以不必。第二个表格应该预填充他们的电子邮件和zip,所以他们没有(将其链接回数据库)
我尝试使用的是Salsa网址自动填充注册页面,前提是它有字段名称
唯一的问题是我不知道如何从用户电子邮件和zip形式提取表单并将其附加到网址。我想我需要使用javascript,但我不是很好。
对此的任何帮助都会很棒,非常感谢。甚至其他想法我也许会尝试。
编辑:
我能够自己解决一些问题,但仍然可以使用一些帮助。
function URL() {
var email = document.getElementById("email").value;
window.location = "http://wfc2.wiredforchange.com/o/8564/p/salsa/web/common/public/signup?signup_page_KEY=7145&Email=" + email;
}
我用过
onsubmit =“URL();返回false;”在 所以......
<form action="org2.salsalabs.com/save" ; method="POST" name="data" onsubmit="genURL(); false" >
<input type="text" id="user" />
<input type="submit" value="Submit" />
类似的东西,除了它不会首先将数据提交到数据库,它只是将我重定向到第二个表单。我猜这与onsumbit有关。有没有办法先将数据提交到数据库,然后重定向到另一个表单?
答案 0 :(得分:0)
我首先会向您的数据库提供一个XmlHttpRequest信息,然后执行您在请求完成时已经找到的window.location重定向。这就是代码中的样子。
HTML:
<form id="myForm">
Email: <input id="email" type="text" name="Email" /><br />
Zip: <input id="zip" type="text" name="Zip" /><br />
<input type="hidden" name="sign_up_page_KEY" value="7145" />
<input type="button" onclick="saveData()" value="Submit" />
</form>
JavaScript的:
function saveData() {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4) { // Triggered when the information is done saving to your database
var email = document.getElementById("email").value;
var zip = document.getElementById("zip").value;
window.location = "http://wfc2.wiredforchange.com/o/8564/p/salsa/web/common/public/signup?signup_page_KEY=7145&Email=" + email + "&Zip=" + zip;
}
}
xmlhttp.open("POST", "org2.salsalabs.com/save", false);
xmlhttp.send(new FormData(document.getElementById("myForm"))); // Sends a post request to org2.salsalabs.com/save with all the data from the form with id="myForm"
}