【问题标题】:Update dynamically generated class with ajax使用 ajax 更新动态生成的类
【发布时间】:2011-09-20 18:39:43
【问题描述】:

我正在尝试在 php 中创建一个基于电子邮件的应用程序(在 Codeigniter f/w 中)。 我希望能够在单击时将未读消息更改为阅读(我有 2 个类:read0 和 read1)。 我可以立即看到消息的内容,但也想将其更改为“已读”(为 1)。

foreach ($all->result_array() as $row){
print "<tr><td class=read".$row['read']."><a href='#' class='list' name=".$row['au_id'].">".$row['read']."</a></td></tr>";
    }

而 ajax 看起来像:

$('.list').click(function() {
    $.ajax({
        url: "<?php echo site_url('contact/clickMsg'); ?>",
        type: 'POST',
        data:'app_id='+this.name,
        success: function(msg) {
            $('#msg_content').html(msg);
            
        }
    });
$.ajax({ 
        
        success: function( smth) { 
            $('a').html(smth);//Will insert new content inside div element.
        } 
    
    });

我查看了jQuery reload div's content (dynamically rendered),我想我错过了一些东西。 我也试过 $('a').replace(smth) 但得到相同的输出。

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    对不起,我误解了你的问题。看到你的代码,选择器 $('a') 可能真的很模棱两可。我认为您需要使用 $('.list') 查找特定类。但换句话说,如果您需要刷新特定标签,则需要按名称进行。一个好主意是在 smht var 中包含行的 ID 和值,因此您使用字符串函数对其进行解析,并将该解析的一部分(id)用于选择器,将第二个(值)用于的HTML。比如:

    $('name=' + my_returned_ajax_id).html(my_returned_value)

    因此,通过这种方式,您可以准确刷新您在数据库中真正更新的行。

    【讨论】:

    • 不,我想立即显示数据库中已修改的值...我有一个字段(在我的表中读取),其值为 1 或 0...如果我点击 0我希望能够将其更改为 1。它在 db 中更新,但刷新后我可以在页面上看到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2014-03-08
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2014-06-07
    相关资源
    最近更新 更多