[英]How to trigger another form while submitting a form.?
我有這樣的表格
<form action="formprocess1.php">
<input type="text" name="firstname">
<input type="text" name="email">
<input type="checkbox" name="newsletter" value="1">
<input type="submit" name="submit">
</form>
如果在第一個表單上選中了復選框,我想觸發另一個表單
<form action="newsletter.php">
<input type="text" name="firstname">
<input type="text" name="email">
<input type="submit" name="submit">
</form>
誰能給我一些PHP代碼或javascript代碼來自動觸發它? 謝謝
您不能一次觸發兩個表單,因為您只能一次向PHP頁面發送一個請求,除非您使用的是AJAX。
這里的解決方案是隱藏第二個表單,除非附加了復選框,並在選中復選框時將其顯示為第一個表單的一部分。
您是否希望我演示如何做到這一點?
更新
在更改復選框狀態時顯示/隱藏新聞稿表單:
HTML:
<form>
<input type="text" name="firstname">
<input type="text" name="email">
<input type="checkbox" name="newsletter" value="1">
<div id="newsletter" style="display:none;">
<input type="text" name="news-firstname">
<input type="text" name="news-email">
</div>
<input type="submit" name="submit">
</form>
Javascript(jQuery):
// Set the onchange event for the checkbox
$('input[name="newsletter"]').change(function(){
// Test is checkbox is checked
if($(this).is(':checked')){
// If it is checked then show the newsletter
$('#newsletter').show();
}else{
// If it is not checked then hide the news letter
$('#newsletter').hide();
}
})
我沒有測試過上面但它應該可以工作,如果有任何錯誤,請告訴我,我會修復它們。 我已經明確提出意見來解釋每個步驟的作用。
在PHP腳本中,您必須進行測試以查看是否選中了復選框,然后進行相應的驗證。 否則,您將始終收到新聞通訊信息。 僅僅因為它們被隱藏並不意味着它們沒有被提交。
我建議將兩個單獨的PHP腳本合並到一個文件中,這將使您更加簡單。
另一種選擇是AJAX,它稍微復雜一點,但是現在越來越多的人正在使用它,這是一種很好的做法。 如果您想看一個這樣的例子,請告訴我。
使用Jquery庫..這樣的東西..我剛剛為你做了所有的代碼,但你需要添加樣式和一些AJAX的東西提交,它的工作原理:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script type="text/javascript">
//this is for Jquery 1.6+
$(function() {
$("#newscheck").change(function() {
if ($("#newscheck").prop("checked", true))
$("#newsletterForm").show("slow");
}); //End of $("#newscheck").change
}); //End of $(function() {
</script>
</head>
<body>
<form action="formprocess1.php" id="form1">
<input type="text" name="firstname">
<input type="text" name="email">
<input type="checkbox" id="newscheck" name="newsletter" value="0">
<input type="submit" name="submit">
</form>
<form action="newsletter.php" id="newsletterForm" style="display:none;">
<input type="text" name="firstnameNews">
<input type="text" name="emailNews">
<input type="submitNews" name="submitNews">
</form>
</body>
</html>
您可以使用AJAX(異步Javascript和XML)。 如果您使用jQuery庫,以下是一些如何設置它的示例: http : //api.jquery.com/jQuery.post/
僅使用一個表單並使用jquery來實現使用不同腳本來處理提交事件的目標
<form id="form">
<input type="text" name="firstname">
<input type="text" name="email">
<input id="ckType" type="checkbox" name="newsletter" value="1">
<input type="submit" name="submit">
</form>
JavaScript的
$("#form").submit({
var urlstr;
if($("#ckType").attr("checked")){
urlstr = "newsletter.php";
}else{
urlstr = "formprocess1.php";
}
$.ajax({
url:urlstr,
...
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.