我想使用 PHP 和 Ajax 自动更新页面。现在我在页面上有以下代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<a href="Page-Like.php?idSub=12&idCat=32" class="post"><i class="fa fa-heart-o"></i></a>
</body>
</html>
当用户单击链接时,它将被重定向到另一个名为"Page-Like.php"的页面
include("config.php");
//get vars
$idSubliminal=$_GET["idSubliminal"];
$idCategoria=$_GET["idCategoria"];
// mysql_query("insert into Rating .... (mysql insert query)
echo "<script>
location.href='"AudioSubliminal.php?idSubliminal=$idSubliminal&idCategoria=$idCategoria'";
</script>";
我想要的是使用 Ajax 来不刷新页面。我知道我缺少javascript代码,但我想得到一些建议来完成这个脚本。
谢谢!
您只需要一个基本的 ajax 请求即可实现您的功能。 查看下面的示例请求。
function ajaxpr(){
var URLString="idSub=12&idCat=32";
ajax_request = $.ajax({
type: 'GET',
url: "Page-Like.php",
data: URLString,
dataType : 'html',
context: $(this),
success: function (msg)
{
//perform the required operation after success
});
}
在单击标签时添加函数。 然后使用以下方法定义该函数:
$.ajax({
type: 'GET',
data: {idSub: "12", idCat: "32"},
url: "Page-Like.php",
dataType: 'JSON',
success: function (response, textStatus, jqXHR) {
//DEFINE FUNCTION HERE
}
});
这是使用没有刷新页面的 ajax 函数。
您可以使用许多方法在代码上实现 Ajax。
其中一个是jQuery,另一个是mootools等。取决于您知道或想要学习的图书馆。
使用 ajax 加载页面很容易。点击此链接 http://www.w3schools.com/ajax/
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
// Change this to your desired DOM tag
document.body.innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "Page-Like.php?idSub=12&idCat=32", true);
xhttp.send();
}
现在只需放置事件侦听器来运行 loadDoc() 函数即可。如果链接是动态的,则可以将参数解析为函数。
但是,我注意到您的php中有一个js脚本,它将再次重定向到AudioSubliminal.php。如果这是您想要的流程,那么没关系。如果没有,您可以创建另一个函数
function loadAudioSubliminal(idSub, idCat) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
// Change this to your desired DOM tag
document.body.innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "AudioSubliminal.php?idSubliminal=" + idSub + "&idCategoria=" + idCat, true);
xhttp.send();
}
并修改了 loadDoc() 以接收一个参数,以便可以再次传递 idSub 和 idCat。 例如:
function loadDoc(idSub, idCat) {
var xhttp = new XMLHttpRequest();
if (xhttp.readyState == 4 && xhttp.status == 200) {
// Change this to your desired DOM tag
document.body.innerHTML = xhttp.responseText;
// run the function after finished loading Page-like.php
loadAudioSubliminal(idSub, idCat)
}
xhttp.open("GET", "Page-Like.php?idSub=" + idSub + "&idCat=" + idCat, true);
xhttp.send();
}