php - 如何在提交表单时触发另一个表单。?

标签 php javascript html forms triggers

我有这样的表格

<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/

相关文章:

php - mysql 从表中选择第n列

php - Magento 中的销售产品 block 消失了

php - 返回与 preg_match 的匹配项,不带数字键的项目

javascript - 在 JSON block 中声明对象及其原型(prototype)

javascript - Angular Cling 服务不起作用

php - 如何用另一个php文件编辑一个php文件的变量

c# - 快速字符串检查查找字符串内的重复项

html - 阻止 Gmail 添加指向地址的链接?

javascript - 意外的隐藏 div 出现在 html 文件中

javascript - 用于通过 AJAX 提交表单的 jQuery?