我试图通过将数据数组保存到文件来允许用户保存进度。我知道我可以通过更改标题来强制执行php下载,但我使用ajax调用调用php脚本需要响应以重新启用按钮。我首先需要禁用按钮的原因是jquery已经收集大量数据发送到脚本,需要几秒钟的时间。我在下面发布了我的代码,只保存了一个本地文件。理想情况下,我只想要一个“保存到”对话框,让ajax知道它就好了。
那么我可以强制下载并仍然回显json数据响应吗?
再次感谢你, 托德
require_once('../FirePHPCore/fb.php');
session_start();
/* Initialize an ajax pessimistic response object. */
$ResponseData = array
(
'Success' => false,
'Message' => 'There was an error saving your chart right now. Please try again later.'
);
// assemble the final array to save to disk
$finalArray = array();
$finalArray['colorChart'] = $_POST['colorChart'];
$finalArray['threadBrand'] = $_POST['threadBrand'];
$finalArray['chartName'] = $_POST['chartName'];
$finalArray['stitchChart'] = $_POST['stitchChart'];
file_put_contents('array.txt', serialize($finalArray));
$ResponseData['Success'] = true;
$ResponseData['Message'] = 'Saved.';
/* Output the response data in JSON. */
echo json_encode($ResponseData);
答案 0 :(得分:1)
您的AJAX调用可以让PHP准备要下载的文件,然后返回临时文件的文件名。
然后,JavaScript可以将浏览器重定向到临时文件。如果设置了适当的标题,则将下载文件并保持浏览器窗口不变。