2016-03-14 35 views
-3
function aggiungifav(){ 
    document.getElementById("addfav").style.display = "none"; 
    document.getElementById("delfav").style.display = "block"; 
    <?php 
     mysql_connect("localhost", "", ""); 
     $utente = $_COOKIE['id_utente']; 
     $id_locale = $_GET['id']; 
     mysql_select_db("my_db"); 
     mysql_query("INSERT INTO preferito (utente,locale) VALUES ('$utente', '$id_locale')");  
    ?> 
} 

顯然這是錯誤的,但我張貼它讓你明白我想要做什麼。根據stackoverflow上的很多答案,Ajax是必需的。但我從來沒有用過,所以有人可以幫助我?我還有其他的功能,但是如果你給我看這個,我會理解它是如何工作的,然後我會自己做其他的。由於如何使用ajax從javascript調用php函數

+2

'照了很多在這裏計算器的答案,Ajax是needed'。爲什麼不嘗試其中的任何人? –

+0

你使用jQuery嗎? –

+0

請參閱jQuery的$ .ajax()方法。然後對使用json_encode()輸出json數據做一些研究。我建議使用json數據並傳遞數據對象。 – jjwdesign

回答

0

AJAX不是混合使用客戶端和服務器端的代碼,因爲你的嘗試方式暗示。這只是一種從客戶端代碼發出HTTP請求而不刷新頁面的方式。

例如,假設你有一個PHP頁面是這樣的:

<?php 
    require('some_functions.php'); 
    some_function(); 
?> 

這一切確實是進口具有一定功能的腳本,並調用這些功能之一。因此,爲了從客戶端代碼「調用該函數」,您只需要請求該頁面。就像您在瀏覽器中輸入此頁面的地址並加載它一樣。 (雖然它有沒有輸出,當然。)

既然你標記與jQuery的問題,我會承擔its use。所以,你的客戶端代碼可能是這樣的:

$.ajax({ 
    url: 'your_page.php' 
}).done(function() { 
    alert('success'); 
}).fail(function() { 
    alert('error'); 
}) 

注意添加特別donefail回調函數。不要假設成功並以某種方式檢查AJAX調用的響應非常重要。

,這自然可以得到相當複雜。服務器端頁面可以有輸出(可能在HTML中,儘管通常JSON數據是首選,因爲頁面的HTML應該已經在瀏覽器中,並且它只需要來自服務器的數據),可以發送額外的成功/錯誤信息,數據可以發佈到服務器等Check the documentation爲jQuery提供的所有選項$.ajax()函數。無論你需要什麼這個代碼做細節


,主要的一點奪去這是您的客戶端代碼不呼叫服務器端代碼的函數。它請求某種頁面。該頁面具有像任何其他PHP頁面一樣的服務器端代碼,並通過發送輸出來響應該請求。

這一切都只是HTTP請求和響應。