我正在尝试使用javascript(jquery)将表单提交到另一个将结果导出到excel的页面。下面是我用来向页面发送表单数据并将结果返回到同一页面上的div的代码。
<script type="text/javascript">
function get3() {
$.post('chartprojecttype.php',
$('form[name="reportform"]').serialize(),
function (output) {
$('#info').html(output).show();
});
}
</script>
我试图像这样修改它,
<script type="text/javascript">
function get4() {
$.post('openticketsexcel.php',
{
document.getElementById(‘reportform’).submit();
});
</script>
但它不起作用。我有另一种方法可以做到这一点,并有不同的页面,以不同的格式导出它。
<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">
和
<script type="text/javascript">
function submitForm(action)
{
document.getElementById('reportform').action = action;
document.getElementById('reportform').submit();
}
</script>
这只适用于IE浏览器。 Chrome和FireFox可以使用第一个返回提交数据的代码,但不能使用将其提交到导出页面的代码。有什么想法吗?
答案 0 :(得分:0)
你忘记了function
和一个结束的大括号,你的单引号是卷曲的而不是笔直的。试试这个:
<script type="text/javascript">
function get4() {
$.post('openticketsexcel.php', function() {
document.getElementById('reportform').submit();
});
}
</script>
答案 1 :(得分:0)
jQuery帖子应该是这样的
$.post( "some/url", function( data ) {
// code goes here
});
参考
答案 2 :(得分:0)
你有很多问题
1)输入类型=图像是提交按钮。不要在提交按钮的提交中提交,因为您实际上会干扰事件
2)为什么在将表单发布到服务器后需要提交表单?如果你需要服务器返回一个单词或excel,你需要获取(我在下面通过查找位置获取)或POST一个表单 - 但不要使用$ .post,因为浏览器需要打开文件,你不能单词或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>
使用
$(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>
并让php解决问题