2012-08-23 133 views
2

好吧,我知道這個問題已被問過,但我是PHP和JavaScript的新手,甚至沒有聽說過Ajax,直到我開始尋找這個問題的答案,所以做不理解以前的答案。使用ajax/javascript調用php函數

我正在創建一個網站,本質上是一堆視頻在SQL數據庫中,它一次顯示一個視頻,我想有一個下一個和上一個視頻按鈕。

但是我不能過去這個ajax的東西,所以我的問題更簡單。我已經看過這個問題/答案,並認爲它幾乎概括了什麼IM問:

How do I run PHP code when a user clicks on a link?

我抄的是確切的代碼,

<script type="text/javascript"> 
     function doSomething() { 
     $.get("backend.php"); 
      return false; 
     } 
    </script> 

<a href="#" onclick="doSomething();">Click Me!</a> 

在我backend.php文件我有字面上剛剛得到<?php echo "Hello" ?>只是爲了測試它,因此我的理解是,當我點擊鏈接的JavaScript onClick事件觸發,然後調用backend.php文件,它說打印「你好」的網頁。但是,當我點擊鏈接時,它什麼都不做。

最終顯然即將需要得到更多的複雜與我的PHP函數和調用變量和所有的東西,但我喜歡弄清楚自己的事情大部分,所以我學習。然而我堅持這一點。此外,雖然即時通訊在這裏,我會問另一件事,我想'回報'網站的用戶回答我的問題,但我只能在HTML和CSS中足夠好,以回答其他人的問題,任何關於能夠在這裏找到更簡單的問題,所以我可以回答一些。

感謝提前:)

回答

3

當然這並不能監守你不這樣做,結果什麼。我的猜測是,在你拿的例子中,它做了一些工作,並沒有向用戶顯示任何東西。所以,如果你只是想在服務器上運行一些東西而不返回任何輸出給用戶,那麼你可以簡單地做到這一點,它就可以工作。從

例jQuery的.get() documentation

你做什麼:

例:請求test.php的頁面,但忽略返回結果。

$.get("test.php"); 

你想要做什麼:

示例:從請求的test.php(HTML或XML,根據返回的)通知出結果。

$.get("test.php", function(data){ 
    alert("Data Loaded: " + data); 
}); 
+0

謝謝,我沒意識到什麼我其實是用來自jQuery庫,我會去的文件,並在'。獲得讀了()'功能,看看我能否弄清楚。 – DavidT

3

看一看的.get() documentation。你使用不正確。使用$_GET

$.get("backend.php", 
    { 
     // data passed to backend.php goes here in 
     // 
     // name: value 
     // 
     // format. OR you can leave it blank. 
    }, function(data) { 
     // data is the return value of backend.php 
     // process data here 
    } 
); 

如果傳遞的數據,你可以找回上backend.php

你應該傳遞數據(可選)和處理被返回的數據,在最低限度。在這種情況下:

$_GET['name']; 
1
$.get("test.php", { name: "John", time: "2pm" }, function(data) { 
    alert("Data Loaded: " + data); 
}); 

http://api.jquery.com/jQuery.get/

+1

後?那些水果是從哪裏來的? – Neal

+0

哈哈,打錯了。 –

+1

@Neal哈哈「那裏的水果」 – Matt

1

這將提醒數據。現在該函數只返回false。

$.get('backend.php', function(data) { 
    alert(data); 
}); 
1

您的代碼不會按照您設置的方式打印到頁面;你是那裏的一部分,因爲你已經調用了頁面,但是響應需要以某種方式處理。如果您在Chrome中打開開發人員工具,則可以單擊「網絡」選項卡並查看請求和響應,以驗證您編碼的內容是否真正起作用,但現在您需要將響應放在某處。

通過將函數作爲第二個變量傳入$ .get,您可以使您的請求顯示在頁面上。試試這樣的:

$.get("backend.php", function (data) { $('body').append(data); }); 
0

你的代碼沒有處理該數據。因此,相反,你應該使用下面的代碼:

$.get("backend.php", function(response) { 
    alert(response); 
    }) 

或者,要顯示在用戶界面,數據,將其分配給任何HTML元素。

更多瞭解,請訪問:jQuery.get()鏈接