使用 ajax、php 和 jQuery 更改 DIV 内容

Posted

技术标签:

【中文标题】使用 ajax、php 和 jQuery 更改 DIV 内容【英文标题】:Change DIV content using ajax, php and jQuery 【发布时间】:2011-09-24 07:31:00 【问题描述】:

我有一个 div,其中包含一些数据库文本:

<div id="summary">Here is summary of movie</div>

以及链接列表:

<a href="?id=1" class="movie">Name of movie</a>
<a href="?id=2" class="movie">Name of movie</a>
..

流程应该是这样的:

    点击链接 Ajax 使用链接的 url 通过 GET 将数据传递到 php 文件/同一页面 PHP 返回字符串 div改成这个字符串

【问题讨论】:

您是在使用一些 js 框架,例如 jQuery,还是想要一个普通的 javascript 灵魂? 使用$('#summary').html("Your text");改变一个div的内容 @Eamorr - 但我怎样才能通过获取请求? 【参考方案1】:
<script>

function getSummary(id)

   $.ajax(

     type: "GET",
     url: 'Your URL',
     data: "id=" + id, // appears as $_GET['id'] @ your backend side
     success: function(data) 
           // data is ur summary
          $('#summary').html(data);
     

   );


</script>

并在您的列表中添加onclick 事件

<a onclick="getSummary('1')">View Text</a>
<div id="#summary">This text will be replaced when the onclick event (link is clicked) is triggered.</div>

【讨论】:

【参考方案2】:

您可以使用jQuery 轻松实现此目的,方法是注册锚点的点击事件(使用 class="movie")并使用.load() 方法发送 AJAX 请求并替换摘要 div 的内容:

$(function() 
    $('.movie').click(function() 
        $('#summary').load(this.href);

        // it's important to return false from the click
        // handler in order to cancel the default action
        // of the link which is to redirect to the url and
        // execute the AJAX request
        return false;
    );
);

【讨论】:

但是我需要传递一个 GET 请求,没有每个摘要页面.. 有一个 php 文件可以获取电影的 ID 并从数据库中提取摘要。 :-)【参考方案3】:

试试这个

   function getmoviename(id)
       
     var p_url= yoururl from where you get movie name,
     jQuery.ajax(
     type: "GET",             
     url: p_url,
     data: "id=" + id,
      success: function(data) 
       $('#summary').html(data);

    
 );    
 

而你的 html 部分是

  <a href="javascript:void(0);" class="movie" onclick="getmoviename(youridvariable)">
  Name of movie</a>

  <div id="summary">Here is summary of movie</div>

【讨论】:

【参考方案4】:

这对我有用,你不需要内联脚本:

Javascript:

    $(document).ready(function() 
    $('.showme').bind('click', function() 

        var id=$(this).attr("id");
        var num=$(this).attr("class");
        var poststr="request="+num+"&moreinfo="+id;
        $.ajax(
              url:"testme.php",
              cache:0,
              data:poststr,
              success:function(result)
                     document.getElementById("stuff").innerHTML=result;
               
        ); 
    );
 );

HTML:

    <div class='request_1 showme' id='rating_1'>More stuff 1</div>
    <div class='request_2 showme' id='rating_2'>More stuff 2</div>
    <div class='request_3 showme' id='rating_3'>More stuff 3</div>

    <div id="stuff">Here is some stuff that will update when the links above are clicked</div>

请求发送到testme.php:

    header("Cache-Control: no-cache");
    header("Pragma: nocache");

    $request_id = preg_replace("/[^0-9]/","",$_REQUEST['request']);
    $request_moreinfo = preg_replace("/[^0-9]/","",$_REQUEST['moreinfo']);

    if($request_id=="1")
    
        echo "show 1";
    
    elseif($request_id=="2")
    
        echo "show 2";
    
    else
    
        echo "show 3";
    

【讨论】:

【参考方案5】:

jQuery.load()

$('#summary').load('ajax.php', function() 
  alert('Loaded.');
);

【讨论】:

【参考方案6】:
<script>
$(function()
    $('.movie').click(function()
        var this_href=$(this).attr('href');
        $.ajax(
            url:this_href,
            type:'post',
            cache:false,
            success:function(data)
            
                $('#summary').html(data);
            
        );
        return false;
    );
);
</script>

【讨论】:

【参考方案7】:
<script>

function getSummary(id)

   $.ajax(

     type: "GET",//post
     url: 'Your URL',
     data: "id="+id, // appears as $_GET['id'] @ ur backend side
     success: function(data) 
           // data is ur summary
          $('#summary').html(data);
     

   );


</script>

【讨论】:

以上是关于使用 ajax、php 和 jQuery 更改 DIV 内容的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP+jQuery AJAX 检查 MySQL 数据库的更改并加载更改?

如何使用 Ajax 和 Jquery 从 PHP 数据库中提取信息,并使用该信息填充元素?

使用 AJAX、PHP 和 jQuery 上传多张图片

使用 AJAX、PHP 和 jQuery 上传多张图片

AJAX 内部的 JQuery 卷轴中断称为 DOM 更改/插入 .load()

如何使用 jquery、ajax 和 php 在数据库中保存图像文件 (BLOB)