如何使用ajax从javascript调用php函数

时间:2016-03-14 16:40:41

标签: javascript php jquery ajax

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。但我从未使用它,所以有人可以帮助我吗?我有其他功能,但如果你告诉我这个,我会理解它是如何工作的,然后我会自己做其他的。感谢

1 个答案:

答案 0 :(得分: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请求和响应。