我有这样的表格
<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,它稍微复杂一些,但随着现在越来越多的人使用它,这是一种很好的做法。如果您想查看这方面的示例,请告诉我。
关于php - 如何在提交表单时触发另一个表单。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082317/