繁体   English   中英

使用一个表单向不同的操作发送相同的输入

[英]Send same inputs to different actions with one form

我有两个输入字段, 我想将相同的数据发布到两个不同的php文件 ,具体取决于点击的按钮。

在我的情况下,数据仅进入foo.php ,但不进入excel.php

如果按下第二个按钮,我希望数据转到excel.php。


JS

$(function() {

  $("#from").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    onClose: function(selectedDate) {
      $("#to").datepicker("option", "minDate", selectedDate);
    }
  });

  $("#to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    onClose: function(selectedDate) {
      $("#from").datepicker("option", "maxDate", selectedDate);
    }
  });

});

HTML

<form action="foo.php" method="post">
     <label for="from">From</label>
     <input type="text" id="from" name="from" />

     <label for="to">to</label>
     <input type="text" id="to" name="to" /> <br>

     <input type="submit" value="Viewchart">
</form>

<form action="excel.php" method="post">
     <input type="submit" value="Download Excel file">
</form>

单击按钮时可以更改action属性,如下所示:

$(function() { 
    $( ".actionable" ).click( function() {
        $('#myForm').attr('action', $(this).data("action"));
        $('#myForm').submit();
    });
});

并将下一个data-*属性设置为按钮:

<form name="form" id="myForm" method="post">
    <input type="submit" class="actionable" value="Viewchart" data-action="foo.php"/>
    <input type="submit" class="actionable" value="Excel" data-action="excel.php"/>
</form>

你可以在这里看到它是如何工作的。


相关链接:


OP的澄清:

$( function() {} ); block -equalentalent to $(document).ready( function() {} ); - 指定DOM完全加载时要执行的函数; 应该把所有与DOM元素交互的代码放在里面。

它可以通过下一个脚本以您的方式完成,并且在第二个表单声明中几乎没有变化

对于第二种形式,你应该设置id:

<form id="form2" action="excel.php" method="post">

你应该添加下一个脚本:

$("#form2").submit( function(eventObj){
$(this).append('<input type="hidden" name="from" value="'+$("#from").val()+'" /> ');  
$(this).append('<input type="hidden" name="to" value="'+$("#to").val()+'" /> ');               
return true;
});

发生这种情况是因为你有一个带有action =“foo.php”的表单。 无论您单击哪个按钮,它总是会将数据发送到表单的操作,在本例中为“foo.php”。
解:
将输入分成两种形式,并将第二种形式的动作设置为“excel.php”。 然后它应该工作。 希望它能帮助你。

编辑:在最后一秒看到第二个表格。 在这种情况下,您只需要将“to”或“from”的输入转到第二种形式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM