脚本宝典收集整理的这篇文章主要介绍了php – 提示用户通过AJAX调用保存文件,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
JS:
myGrid.csvParser = myGrid.csvExtParser; myGrid.setCSVDelimiter('|'); myGrid.csv.row = "endOfRow"; var gridCsvData = myGrid.serializeToCSV(); $.post( "data/export.PHP",{ csvdata: gridCsvData } );
$csvData = $_REQUEST['csvdata']; $csv = explode('endOfRow',$csvData); $myfile = "grid.csv"; $fh = fopen($myfile,'w') or die("can't open file"); foreach($csv as $line) { fputcsv($fh,explode('|',$line),','"'); } fclose($fh); //Redirect output to a client's web browser (csv) header("Content-type: application/csv"); header("Content-Disposition: attachment; filename=grid.csv"); header("Pragma: no-cache"); header("Expires: 0");
这段代码完美地运行,因为它按照我想要的方式导出Grid并将其保存到’grid.csv’.问题是它没有提示用户保存文件.这是我的PHP标题的问题还是我需要在$.post中添加一些东西来提示成功?谢谢你的帮助!
// Create iFrame var iframe = document.createElement('iframe'); iframe.style.display = "none"; document.body.appendChild(iframe); // Get the iframe's document var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; // Make a form var form = document.createElement('form'); form.action = 'data/export.PHP'; // Your URL form.method = 'POST'; // Add form element,to post your value var input = document.createElement('input'); input.type = 'hidden'; input.name = 'csvdata'; input.value = gridCsvData; // Your POST data // Add input to form form.appendChild(input); // Add form to iFrame // IE doesn't have the "body" property (iframeDoc.body || iframeDoc).appendChild(form); // Post the form :-) form.submit();
附:您的PHP代码实际上并不将CSV回显到屏幕,它只是将其保存到文件中.
readfile($myfile);
以上是脚本宝典为你收集整理的php – 提示用户通过AJAX调用保存文件全部内容,希望文章能够帮你解决php – 提示用户通过AJAX调用保存文件所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。