Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ajax从javascript调用php函数_Javascript_Php_Jquery_Ajax - Fatal编程技术网

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

如何使用ajax从javascript调用php函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,显然这是错误的,但我发布它是为了让你明白我想做什么。根据这里关于stackoverflow的许多回答,Ajax是必要的。但我从来没用过,有人能帮我吗?我有其他的功能,但如果你给我看这个,我会理解它是如何工作的,然后我会自己做其他的。谢谢正如您的尝试所示,AJAX并不是一种混合客户端和服务器端代码的方法。这只是一种从客户端代码发出HTTP请求而无需刷新页面的方法 例如,假设您有这样一个PHP页面: function aggiungifav(){ document.getElementByI

显然这是错误的,但我发布它是为了让你明白我想做什么。根据这里关于stackoverflow的许多回答,Ajax是必要的。但我从来没用过,有人能帮我吗?我有其他的功能,但如果你给我看这个,我会理解它是如何工作的,然后我会自己做其他的。谢谢

正如您的尝试所示,AJAX并不是一种混合客户端和服务器端代码的方法。这只是一种从客户端代码发出HTTP请求而无需刷新页面的方法

例如,假设您有这样一个PHP页面:

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')");    
    ?>  
}
<?php
    require('some_functions.php');
    some_function();
?>
特别注意添加了done和fail回调函数。重要的是不要假设成功并以某种方式检查AJAX调用的响应

当然,这会变得相当复杂。服务器端页面可能有HTML格式的输出,尽管通常首选JSON数据,因为页面的HTML应该已经在浏览器中,它只需要来自服务器的数据,可以发送其他成功/错误信息,可以将数据发布到服务器,对于jQuery$.ajax函数可用的所有选项

不管您需要这段代码做什么的细节如何,主要的一点是您的客户端代码不调用服务器端代码中的函数。它需要某种类型的页面。该页面与任何其他PHP页面一样具有服务器端代码,并通过像任何其他页面一样发出输出来响应请求


所有这些都只是HTTP请求和响应。

根据这里关于stackoverflow的许多回答,需要Ajax。为什么不试试其中的任何一个呢?您正在使用jQuery吗?请参阅jQuery的$.ajax方法。然后研究如何使用json_encode输出json数据。我建议使用json数据并传递数据对象。我确实尝试过它们,但它们与我的情况太不一样了。可能是重复的
$.ajax({
    url: 'your_page.php'
}).done(function() {
    alert('success');
}).fail(function() {
    alert('error');
})