使用jquery ajax从数据库加载信息

前端之家收集整理的这篇文章主要介绍了使用jquery ajax从数据库加载信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题

我尝试使用以下内容

// Start method 1

var grbData = $.ajax({
        type : "GET",url : "http://grb.sonoma.edu:81/getgrbs.PHP",data : "start=0&perPage=3"}).responseText;

$("#ajaxDiv").html(grbData);

// End method 1

// Start method 2

$.get("getgrbs.PHP",{ start : 0,perPage : 3},function(data) {
              $("#tst").html(data);
        },"html");

// End method 2

在此页面上:http://grb.sonoma.edu:81/paging.php数据库加载数据.方法1似乎只在IE8中工作,但仅在刷新页面后才能使用.首次加载页面时,我得到“完成此操作所需的数据尚不可用”.错误.

我更喜欢方法1的原因是因为它让我可以访问表中的各个行.例如.每行都有一个类“爆发”.我在用

$(".burst").click(function() {
        $(".burst").css("background-color","");
        $(this).css("background-color","yellow");
    });

单击时更改所选行的颜色.这似乎只适用于方法1而不是方法2.

所有上述代码都封装在$(document).ready()中.我努力了

$("#ajaxDiv").load("getgrbs.PHP",perPage : 3});

但我得到的结果与方法2类似.

如何让click函数方法2一起使用,或者让方法1在没有刷新的情况下在所有浏览器上运行?感谢您为此提供的任何帮助.

我需要在ajax中执行此操作(在没有jquery的情况下尝试了ajax,也没有运气),因为页面上的其他内容不会随着用户通过数据页面而改变.

解决方案附录(更好的解决方案)

在成功使用“成功”之后,我注意到点击行并具有bg颜色变化的能力消失了.所以我做了以下,似乎工作.不确定它是否是最好的方式.

var grbData = $.ajax({
    type : "GET",data : "start=0&perPage=3",dataType : 'html',success: function (data) {
            $("#ajaxDiv").replaceWith(data);
            startInteraction();
        }
});

function startInteraction() {
    $(".burst").click(function() {
        $(".burst").css("background-color","yellow");
    });
}

解决方法

尝试:
var grbData = $.ajax({
        type : "GET",success: function (html) {
            $("#ajaxDiv").html(html);
        }
});

它无法正常工作的原因是它在完成加载之前尝试使用你的html.代码的执行速度比返回结果的速度快.

为了保持您的点击事件,您可以使用.live,这样它将触发事件以便将来添加页面中的元素,就像您的ajax代码一样.

$(document).ready( function () {
    $(".burst").live('click',function() {
        $(".burst").css("background-color","yellow");
    });
});
原文链接:https://www.f2er.com/jquery/180547.html

猜你在找的jQuery相关文章