Php AJAX使用链接而不是按钮加载内容?
我正在尝试使用AJAX/JQUERY加载链接a href中的URL内容 由于某些原因,AJAX没有被执行,当我点击链接时,URL将在一个新窗口中打开 但是我需要在没有打开新窗口的情况下,将URL的内容加载到具有AJAX的同一页面上 这是我当前的代码:Php AJAX使用链接而不是按钮加载内容?,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试使用AJAX/JQUERY加载链接a href中的URL内容 由于某些原因,AJAX没有被执行,当我点击链接时,URL将在一个新窗口中打开 但是我需要在没有打开新窗口的情况下,将URL的内容加载到具有AJAX的同一页面上 这是我当前的代码: <div id="content"></div> <a id='listc' class='lisitem' href='file.php?id=".$id."' >".$id."</a>
<div id="content"></div>
<a id='listc' class='lisitem' href='file.php?id=".$id."' >".$id."</a>
还有AJAX:
<script type="text/javascript">
$("#listc").click(function() {
$("#content").load(this.href);
return false;
});
</script>
$(“#listc”)。单击(函数(){
$(“#content”).load(this.href);
返回false;
});
只是澄清一下,我的页面标题中确实包含了jquery库,并且我正在将其用于同一页面上的其他内容。所以问题不是这样
能否请一些人就这个问题提出建议
谢谢您需要阻止链接的默认操作:
<script type="text/javascript">
$("#listc").click(function(e) {
e.preventDefault();
$("#content").load(this.href);
return false;
});
</script>
$(“#listc”)。单击(函数(e){
e、 预防默认值();
$(“#content”).load(this.href);
返回false;
});
您需要对AJAX返回做些什么:
<script type="text/javascript">
$("#listc").click(function() {
$("#content").load(this.href, function(result){
alert("AJAX done");
});
return false;
});
</script>
$(“#listc”)。单击(函数(){
$(“#内容”).load(this.href,函数(结果){
警报(“AJAX完成”);
});
返回false;
});
尝试以下方法:
document.getElementById('listc').addEventListener('click', function() {
$("#content").load(this.href);
return false;
});
更新
更改:
<a id='listc' class='lisitem' href='file.php?id=".$id."' >".$id."</a>
或:
您可以将
href
从实际页面更改为javascript:
调用。这样,您就不必担心默认的链接重定向
<a id='listc' class='lisitem' href=javascript:LoadFunction('file.php?id=".$id."'); >".$id."</a>
试试这样:
单击链接时,执行AJAX调用,然后在容器中打印结果
<script type="text/javascript">
$("#listc").click(function(e) {
e.preventDefault();
$.ajax({
url: $(e.currentTarge).attr('href'),
complete: function () {
// remove loading status if neeed
},
success: function (response) {
$("#content").html(response)
},
error: function() {
//manage error here
}
});
});
</script>
$(“#listc”)。单击(函数(e){
e、 预防默认值();
$.ajax({
url:$(e.currentTarge.attr('href'),
完成:函数(){
//如果需要,移除加载状态
},
成功:功能(响应){
$(“#content”).html(回复)
},
错误:函数(){
//在此处管理错误
}
});
});
这与您的行为有关吗?顺便问一下,为什么在“$id.”周围加引号?你是否在PHP中?@Fred ii-,不,正如你所看到的,它们是完全不同的问题@Fred ii-是的,我使用PHP加引号或不加引号,它工作正常,从页面上的数据库获取数据。。这和AJAX不起作用无关,我没有说如果“使用”PHP,我的意思是你在使用它的时候是否“在PHP中”;共有两种不同的动物;)是的,我在PHP中。恐怕还是一样。恐怕还是一样。我无法更改href,因为我在PHP页面中。您添加的两个AJAX代码中都有语法错误。仍然一样。因为我在点击按钮时被重定向到新标签页,所以我甚至不会得到提醒();
$(document).delegate('.listitme','click',(function() {
var id = $(this).data('id');
$.post('file.php', {id : id}, function(answer) {
$('#content').html(answer);
});
}
<a id='listc' class='lisitem' href=javascript:LoadFunction('file.php?id=".$id."'); >".$id."</a>
function LoadFunction(url) {
$("#content").load(url, function(result){
//something
});
}
<script type="text/javascript">
$("#listc").click(function(e) {
e.preventDefault();
$.ajax({
url: $(e.currentTarge).attr('href'),
complete: function () {
// remove loading status if neeed
},
success: function (response) {
$("#content").html(response)
},
error: function() {
//manage error here
}
});
});
</script>