代码之家  ›  专栏  ›  技术社区  ›  recipriversexclusion

打开一个新页面并用javascript向其传递参数

  •  0
  • recipriversexclusion  · 技术社区  · 16 年前

    我有一个JS函数,它处理从服务器获取的XML,以动态地创建一个表,如下所示

    // Generate table of services by parsing the returned XML service list.
    function convertServiceXmlDataToTable(xml) {
        var tbodyElem = document.getElementById("myTbody");
        var trElem, tdElem;
        var j = 0;
        $(xml).find("Service").each(function() {
            trElem = tbodyElem.insertRow(tbodyElem.rows.length);
            trElem.className = "tr" + (j % 2);
    
            // first column -> service ID
            var serviceID = $(this).attr("service__id");
            tdElem = trElem.insertCell(trElem.cells.length);
            tdElem.className = "col0";
            tdElem.innerHTML = serviceID;
    
            // second column -> service name
            tdElem = trElem.insertCell(trElem.cells.length);
            tdElem.className = "col1";
            tdElem.innerHTML = "<a href=javascript:showServiceInfo(" + serviceID + ")>" + $(this).find("name").text() + "</a>";
    
            j++;
        }); // each service
    }
    

    哪里 showServiceInfo 根据 serviceID 并将其显示在与服务表相同的页面中。

    到现在为止,一直都还不错。但事实证明,我必须在另一个页面中显示详细的服务信息,而不是在与表相同的页面中。我已经创建了一个通用 service_info.html 使用空的布局模板,但我不知道如何传递 Service ID 到这个新页面,这样它就可以用详细的服务信息进行定制。

    我该怎么做?或者,是否有更好的方法来处理这些情况?

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  2
  •   Michael Rodrigues    16 年前

    比如说:

    ...
    ...
    tdElem.innerHTML = "<a href=javascript:showServiceInfo.html?serivceId=" + serviceID + ">" + $(this).find("name").text() + "</a>"; 
    ...
    ...
    

    然后,showserviceinfo.html页面使用作为查询字符串一部分传入的服务ID,并检索数据本身。