【问题标题】:is there a way to send data from diffrent forms at the same time with only 1 submit button?有没有办法只用一个提交按钮同时从不同的表单发送数据?
【发布时间】:2011-10-14 23:35:02
【问题描述】:

这是我的身体,我想用同一个按钮同时从不同的表单提交超过 1 个数据在 php 中是否可能?我想要第一个表单发送选定的第二个表单发送文本值...

<body>      
<div id="kategoriler">
<h4>Kategoriler</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="mydropdown">
<option value="Oteller">Oteller</option>
<option value="Restaurant">Restaurant</option>
<option value="Cafe">Cafe</option>
<option value="Bar">Bar</option>
<option value="Köy">Köy</option>
</select>
</form>
</div>
<div id ="text">
<h4>Başlik</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="baslik" value="" maxlength="100" />
<h4>Açıklama</h4>
<textarea rows="30" cols="70">
 Buraya yazın...
</textarea>
</form>
</div>
<div id="bresim">
<h4>Başlik Resmi</h4>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"  enctype="multipart/form-data">
<label for="file">Resmi Seçin:</label>
<input name="uploaded" type="file" />
</form>
</div>
<div id="ekle">
<input type="submit" name="submit" value="Eklemek için tıklayın!" />
</div>
</body>

【问题讨论】:

  • 我的答案不起作用!,唯一的方法是通过 AJAX,请查看@Phil 的答案。对不起。
  • 也许这段代码只是一个例子,但是,你为什么要为此创建 3 个表单????

标签: php html forms submit


【解决方案1】:

如果你使用的是 jQuery...

首先,为您的表单和提交按钮提供一些 ID(我使用了 #form1、#form2 和 #submit)。那么……

编辑:这是一个非 AJAX 解决方案,它利用表单发布到相同 URL 的事实。

单击提交按钮时,将文本输入$(input[name=baslik]) 移动/附加到第二个表单,然后提交。此解决方案不需要 jQuery Form 插件,也不使用 AJAX:

$("#form2").submit(function() {
    $(input[name=baslik]).appendTo($(this));
});

原始的 AJAX 解决方案:

如果你想要 AJAX,你可以使用jQuery Form Plugin

$(document).ready(function() { 
    $('#form1, #form2').ajaxForm(function() { 
        // optionally do stuff here after forms submitted
    });

    $('#submit').click(function() {
        $('#form1, #form2').ajaxSubmit();
        return false; 
    });
});

您不能使用 jQuery 的 $(form).serialize(),因为它不适用于文件字段。此解决方案还假设您要使用 AJAX。

【讨论】:

    【解决方案2】:

    是的。

    删除提交的输入,并在每个表单之外添加一个链接,其中包含提交所有内容的 javascript: (还为每个表单添加一个 ID,以便您可以通过此 javascript 调用它们)

    function submitAll(){
       document.forms["IDform1"].submit();
       document.forms["IDform2"].submit();
    }
    

    编辑:这不起作用,唯一的方法是通过 AJAX,请查看@Phil 的答案!

    【讨论】:

    • 非常感谢伙计,所以我首先需要研究一下javascript,谢谢伙计有美好的一天。
    • 两个提交是否在同一个请求中处理到服务器?
    • @jackJoe 真的有用吗?提交这些表单后浏览器中的 URL 是什么?第二种形式的网址?
    • 此方法不起作用,因为只会提交第一个表单(因为它们都在发布到同一个 URL)。如果他们发布到不同的 URL,则只会提交第二个。
    • @Karolis 你说得对,我忘记了那个“微小”的细节,我专注于如何做,真丢人!我想唯一的方法是通过 AJAX 解决方案。
    【解决方案3】:

    一种选择是强制使用 javascript:启动一个 javascript 处理程序来收集值、提交 ajax 请求,甚至编写一个表单并提交它。

    Jquery 可以很容易地用于遍历所有表单值。

    比如:

    $("#first_form").submit(function() {
        //collect all values here
        first_form_data = $("#first_form").serialize();
        second_form_data = $("#second_form").serialize();
    
        $.ajax({
             url: ..,
             data: first_form_data + "&" + second_form_data,
             success: function(data) {
    
             }
        }
    
        //let’s not submit the form
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-17
      • 2020-04-09
      • 2011-06-23
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      相关资源
      最近更新 更多