1

我真的不确定如何正确编码,所以如果有人能指出我正确的轨道,我会很高兴。

我将有一个 SOAP+XML 数组,它的值与 MYSQL 作业表相匹配。然后这些作业显示在一个隐藏行中。在每个隐藏行中,我将有 3 个单独的 SOAP+XML 请求,它们将显示 3 个其他信息位。然后,用户可以单击作业并使用 javascript,它会显示下面的隐藏行,因此会显示额外信息。

我现在的界面 1) http://i.imgur.com/Cx7qB.png 2) http://i.imgur.com/HzXe5.png

问题是当我扩大规模时,如果用户选择在页面上显示 100 个作业。我需要为第一个 SOAP+XML 请求访问服务器以获取作业,然后对于每个作业,再单击 3 次。因此,如果我要显示 100 个作业,我将访问 SOAP 服务器 301 次。

我需要的是一种方法,它只针对 1 个初始 SOAP+XML 请求访问服务器,然后当有人启动 javascript 以查看隐藏行时,它会启动 3 个肥皂请求以获取额外的工作信息。这样用户就不会等待他们不想看到的信息,也不会让我的服务器陷入困境。问题是我真的不知道该怎么做。

我真的不太了解javascript,但我确实知道更多的PHP。这是我用来隐藏表中辅助行的脚本:http: //pastebin.com/jhvaW0X4

任何人都可以插话我应该如何完成这项工作吗?

谢谢!

4

1 回答 1

1

我不确定我是否理解这个问题,但您可以在 javascript 事件上发出 ajax 请求,在这种情况下,当用户单击作业 tr 时,为所需信息发出 ajax 请求,您可以使用$.ajax jquery 方法

$("table#report1.report > tbody > tr.odd").click(function()
{
    if(!$(this).next("tr").hasClass('shown'))
    {
        //Put here your ajax request

        $.ajax({
            url: yourSoapURL, getting tracking info url
            type: "POST",
            dataType: "xml",
            data: soapMessage,
            processData: false,
            contentType: "text/xml; charset=\"utf-8\"",
            success: function(soapMessage) {
                    //Add the tracking info to the tr that will be show
                    $(this).next("tr").text(soapMessage);
                    //Now the text is in the tr, show it!
                    $(this).next("tr").show();
                    $(this).next("tr").addClass("shown");
            },
            error: OnError
        });


    }
    else
    {
        $(this).next("tr").hide();          
        $(this).next("tr").removeClass("shown");
    }

这就是想法。如果你想管理多个 AJAX 请求,请阅读:Multiple AJAX requests in jQuery

于 2013-01-14T18:26:07.293 回答