открыть новую страницу и передать ей параметр с помощью Javascript - PullRequest
0 голосов
/ 28 апреля 2010

У меня есть функция JS, которая обрабатывает XML I GET с сервера для динамического создания таблицы, как показано ниже

// 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 с пустым шаблоном макета, но я не понимаю, как передать serviceID на эту новую страницу, чтобы она настраивалась с подробной служебной информацией.

Как я могу это сделать? Или есть лучший способ справиться с этими ситуациями?

Спасибо!

1 Ответ

2 голосов
/ 28 апреля 2010

Как насчет чего-то вроде:

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

Затем страница showServiceInfo.html использует идентификатор службы, переданный как часть QueryString, и извлекает сами данные.

...