簡體   English   中英

從AJAX調用PHP函數不起作用

[英]Call Php Function From AJAX Not Working

我正在嘗試使用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文件的位置”

但是我無法使其工作。

任何建議都受到高度贊賞。

$('local').click(function(e){

應該

$('#local').click(function(e){

由於local是一個id因此您應在其之前使用# 並且在您的php代碼中還有一些遺漏的引號。

使用Firebug(FF),Dragonfly(Opera),開發人員工具(Chrome)。 您可以看到所有JavaScript錯誤,警告和異常,還可以看到Ajax請求數據。

data: { "get" : "runfunction", "action" : "promptlocal" }, 

嘗試從“獲取”和“操作”中刪除引號。

像這樣 :

    data: { get : "runfunction", action : "promptlocal" }, 

在我看來,您正在嘗試使用jquery / ajax下載文件。 您不會僅使用ajax來使用它。 這個問題已經在stackoverflow上得到了多次回答。

我希望此鏈接對您有幫助: 使用Jquery,PHP下載Ajax文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM