我正在尝试为我的表实现excel导出功能。我正在使用ajax发送表单数据,php脚本使用此数据创建文件,然后什么也没有。我想ajax返回用php创建的文件。这是我的代码。
public static string ConvertCSVToXML(string filePath, char seperator)
{
var lines = File.ReadAllLines(filePath);
var headers = lines[0].Split(seperator);
XElement xml = new XElement("RootElement",
lines.Select(line => new XElement("Item",
line.Split(seperator).Select((column, index) =>
new XElement(headers[index], column))
))
);
return xml.ToString();
}
我的php功能
$('body').on('click', '#excel', function() {
var veri = $('form[method="get"]').serializeArray();
veri['action'] = 'userexcel';
jQuery.ajax({
type: "POST",
url: <?php echo '"' . admin_url( 'admin-ajax.php' ) . '"';?>,
data: veri,
success: function(data){
alert(data);
}
});
return false;
});
答案 0 :(得分:1)
excel代代码工作得很好,但是,如果你想强制浏览器下载该文件,你有两个选择。
创建本地xls文件
您必须将该文件实际保存在服务器上的某个位置,然后将链接返回给它,然后通过在成功调用AJAX后更改window.location.href = "<url_of_xls_file>"
来启动下载。
直接将表单发布到wordress AJAX调用
现在,如果您不想在服务器上创建xls文件,那么您必须摆脱ajax方法,更改您的表单{{ 1}}属性action
并在表单中手动添加admin_url( 'admin-ajax.php' )
wordpress操作。
您可以让浏览器使用这两种方法弹出下载对话框。