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。但我从未使用它,所以有人可以帮助我吗?我有其他功能,但如果你告诉我这个,我会理解它是如何工作的,然后我会自己做其他的。感谢
答案 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');
})
请注意,特别添加了done
和fail
回调函数。重要的是不要假设成功,并以某种方式检查AJAX调用的响应。
当然,这可能会变得更加复杂。服务器端页面可以有输出(可能是HTML,但通常JSON数据是首选,因为页面的HTML应该已经在浏览器中,它只需要来自服务器的数据),可以发送额外的成功/错误信息,数据可以发布到服务器等Check the documentation,以获取jQuery $.ajax()
函数可用的所有选项。
无论您需要使用此代码执行哪些操作的详细信息,主要的一点是,您的客户端代码不会在服务器端代码中调用函数。它请求某种页面。该页面具有与任何其他PHP页面一样的服务器端代码,并通过发送输出来响应请求。
这只是HTTP请求和响应。