我正在尝试使用AJAX调用PHP函数。以下是我使用的脚本。
<script type="text/javascript" src="jquery.1.4.2.js">
$(document).ready(function () {
// after EDIT according to
// @thecodeparadox answer
$('#local').click(function(e){
e.preventDefault();
e.stopPropagation();
promptdownload();
});
});
function promptdownload(e)
{
$.ajax({
type: "POST",
url: "js/prompt.php",
data: { "get" : "runfunction", "action" : "promptlocal" },
success: function (response) {
}
});
}
</script>
相应的PHP代码(prompt.php)是:
<?php
$path1 = "downloads/1.jpg";
$browserFilename1 = "Local Travel";
$mimeType1 = "image/jpeg";
function promptToDownload($path, $browserFilename, $mimeType)
{
if (!file_exists($path) || !is_readable($path)) {
return null;
}
header("Content-Type: " . $mimeType);
header("Content-Disposition: attachment; filename=\"$browserFilename\"");
header('Expires: ' . gmdate('D, d M Y H:i:s', gmmktime() - 3600) . ' GMT');
header("Content-Length: " . filesize($path));
// If you wish you can add some code here to track or log the download
// Special headers for IE 6
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
$fp = fopen($path, "r");
fpassthru($fp);
}
if ($_POST["action"] = 'promptlocal')
{
promptToDownload($_GET[$path1], $browserFilename1, $mimeType1);//comments
}
?>
这是我编码应该触发该功能的按钮的方式:
<input type="button" id="local" name="local" value="Local Travel">
我的预期输出是将此按钮提交给用户:“保存1.jpg文件的位置”。
然而,我无法使其发挥作用。
任何建议都非常感谢。
答案 0 :(得分:6)
$('local').click(function(e){
应该是
$('#local').click(function(e){
由于local
是id
,因此您应该在#
之前使用{{1}}。而且在你的PHP代码中也有一些缺失的引号。
答案 1 :(得分:1)
使用Firebug(FF),Dragonfly(Opera),开发人员工具(Chrome)。您可以查看所有javascript错误,警告和异常,并可以查看ajax请求数据。
答案 2 :(得分:0)
data: { "get" : "runfunction", "action" : "promptlocal" },
尝试从“get”和“action”中删除引号。
像这样:
data: { get : "runfunction", action : "promptlocal" },
答案 3 :(得分:0)
在我看来,您正在尝试使用jquery / ajax下载文件。你不会只使用ajax。在stackoverflow上已经多次回答了这个问题。
我希望此链接可以帮助您:Ajax File Download using Jquery, PHP