Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
Php AJAX使用链接而不是按钮加载内容?_Php_Jquery_Ajax - Fatal编程技术网

Php 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>

我正在尝试使用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>

还有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>