使用javascript(jquery)序列化到新窗口

使用javascript(jquery)序列化到新窗口,javascript,jquery,Javascript,Jquery,我正在尝试使用javascript(jquery)将表单提交到另一个页面,该页面将结果导出到excel。下面是我用来将表单数据发送到页面并将结果返回到同一页面上的div的代码 <script type="text/javascript"> function get3() { $.post('chartprojecttype.php', $('form[name="reportform"]').serialize(), function (output) { $('#i

我正在尝试使用javascript(jquery)将表单提交到另一个页面,该页面将结果导出到excel。下面是我用来将表单数据发送到页面并将结果返回到同一页面上的div的代码

 <script type="text/javascript">
 function get3() {
 $.post('chartprojecttype.php', 
 $('form[name="reportform"]').serialize(), 
 function (output) {
 $('#info').html(output).show();
 });
 }
 </script>

函数get3(){
$.post('chartprojecttype.php',
$('form[name=“reportform”]”)。序列化(),
功能(输出){
$('#info').html(输出).show();
});
}
我试着这样修改它

 <script type="text/javascript">
 function get4() {
 $.post('openticketsexcel.php', 
 {
 document.getElementById(‘reportform’).submit();
 });
 </script>

函数get4(){
$.post('openticketexcel.php',
{
document.getElementById('reportform').submit();
});
但它不起作用。我有另一种方法来做这件事,我必须用不同的页面以不同的格式导出它

  <input type="image" name="excel" onclick="submitForm('openticketsexcel.php')" value="Export To Excel" src="../pix/excel.png" class="submit_button"><input type="image" name="word" onclick="submitForm('openticketsword.php')" value="Export To Word" src="../pix/word.png"class="submit_button">


函数提交表单(操作)
{
document.getElementById('reportform')。action=action;
document.getElementById('reportform').submit();
}

这只适用于IE。Chrome和FireFox可以使用第一个返回提交数据的代码,但不能使用将数据提交到导出页面的代码。有什么想法吗?

您忘记了
函数和结尾的大括号,您的单引号是卷曲的而不是直的。请尝试以下方法:

<script type="text/javascript">
    function get4() {
        $.post('openticketsexcel.php', function() {
            document.getElementById('reportform').submit();
        });
    }
</script>

函数get4(){
$.post('openticketexcel.php',function(){
document.getElementById('reportform').submit();
});
}

jQuery帖子应该是这样的

            $.post( "some/url", function( data ) {
                // code goes here
            });
参考文献

你有很多问题

1) input type=image是一个提交按钮。请不要在单击提交按钮时提交,因为您实际上会干扰事件

2) 将表单发布到服务器后,为什么需要提交表单?如果需要服务器返回word或excel,则需要获取(我在下面通过更改位置获得)或发布表单,但不能使用$.post,因为浏览器需要打开文件,所以不能使用ajax word或excel

您可能只想要这个:

<button class="button" id="excel"><img 
alt="Export To Excel" src="../pix/excel.png"/></button>
<button class="button" id="word"><img  
alt="Export To Word" src="../pix/word.png"/></button>
更简单的解决方案是

<form action="export.php" target="_blank">
  <input type="submit" name="exportformat" value="Excel" />
  <input type="submit" name="exportformat" value="Word" />
</form>


让php把事情整理好

这太傻了。你用jQuery发布表单,然后在发布完成后用DOM提交表单?@mplungjan我不太确定OP想要什么,所以在他们提供更多信息之前,我不去管他们的代码。我同意这没有多大意义。他想下载word或excel,看到了一个脚本at看起来很酷,并将其应用于不相关的情况。Jquery用作锤子。但是,如果希望浏览器加载非xml/html/json文档,请不要使用$.post
$(function() {
  $(".button").on("click",function(e) {
    e.preventDefault();
    location="opentickets"+this.id+".php?"+$('form[name="reportform"]').serialize();
  });     
});
<form action="export.php" target="_blank">
  <input type="submit" name="exportformat" value="Excel" />
  <input type="submit" name="exportformat" value="Word" />
</form>