我真的不确定如何正确编码,所以我希望有人能指出我正确的方向。
我将有一个 SOAP+XML 数组,其中的值与 MYSQL 作业表相匹配。然后,作业将显示在隐藏行中。在每个隐藏行中,我将有 3 个单独的 SOAP+XML 请求,它们将显示其他 3 位信息。然后,用户可以单击该作业并使用 JavaScript,它会显示下面的隐藏行,从而显示额外的信息。
我现在的界面 1) /image/7e50c.png 2) /image/jofoP.png
问题是当我扩大规模时,如果用户选择在页面上显示 100 个职位。我需要为第一个 SOAP+XML 请求点击服务器来获取作业,然后对于每个作业,再点击 3 次。因此,如果我要显示 100 个作业,则需要访问 SOAP 服务器 301 次。
我需要的是一种方法,让它仅针对 1 个初始 SOAP+XML 请求访问服务器,然后当有人启动 javascript 来查看隐藏行时,它会启动 3 个 SOAP 请求以获取额外的作业信息。这样,用户就不会等待他们不想看到的信息,也不会导致我的服务器陷入困境。问题是我真的不知道该怎么做。
我确实不太了解 javascript,但我确实了解很多 PHP。这是我用来隐藏表中次要行的脚本:http://pastebin.com/jhvaW0X4
有人可以插话我应该如何完成这件事吗?
谢谢!
最佳答案
我不确定我是否理解这个问题,但是您可以在 javascript 事件上发出 ajax 请求,在这种情况下,当用户单击作业 tr 时,发出 ajax 请求以获取所需的信息,为此您可以使用$.ajax jquery method :
$("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 。
关于php - 如何运行 PHP 脚本并仅在使用 javascript 显示行时显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322994/