Запрос с использованием JavaScript для отображения событий по дате в HTML-документе - PullRequest
0 голосов
/ 14 июня 2011

Я новичок в javascript и мне нужна помощь. Я не уверен, стоит ли мне использовать AJAX или Xquery.

У меня есть XML-файл, который я хочу получить по всем программам по дате и сборке, и отображать только имя, комнату и время в HTML-документе.

Я хочу сделать это так, чтобы все события понедельника 13 июня были показаны, а затем завтра на веб-странице будут показаны события вторника 14 июня 2011 года и т. Д.

Я скопировал часть XML и HTML в этот пост.

Пожалуйста, помогите. Я не уверен, как это сделать.

Вот небольшой пример XML, поскольку в списке было около 90 программ, которые я замкнул в списке.

<ProgramList>
    <Program>
        <Name>English Conversation Group - Wed.  Morning</Name>
        <Building>Centereach</Building>
        <Room>Foundation Room</Room>
        <Date>6/14/2011</Date>
        <Time>9:30 AM-11:30 AM</Time>
    </Program>
    <Program>
        <Name>Family Center- One on One Counseling</Name>
        <Building>Selden</Building>
        <Room>Lower Meeting Room</Room>
        <Date>6/15/2011</Date>
        <Time>9:30 AM-4:00 PM</Time>
    </Program>
</ProgramList>

Вот HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="nature2.js"></script> 
    <title>Untitled Document</title>
</head>
<body leftmargin="0" topmargin="0" marginheight="0" text="#444316">
    <script type="text/javascript">
function loadXMLDoc(dname)
{
    if (window.XMLHttpRequest)
    {
        xhttp=new XMLHttpRequest();
    }
    else
    {
        xhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttp.open("GET",dname,false);
    xhttp.send("");
    return xhttp.responseXML;
}

xml=loadXMLDoc("ProgramList.xml");
path="/ProgramList/Program/*";
// code for IE
if (window.ActiveXObject)
{
    var nodes=xml.selectNodes(path);

    for (i=0;i<nodes.length;i++)
    {
    document.write(nodes[i].childNodes[0].nodeValue);
    document.write("<br />");
    }
}

// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
    var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
    var result=nodes.iterateNext();

    while (result)
    {
        document.write(result.childNodes[0].nodeValue);
        document.write("<br />");
        result=nodes.iterateNext();
    }
}
    </script>
</body>
</html>

Я пошел на сайт, чтобы проверить примеры, но получил неизвестные ошибки, и примеры не загрузились. Так что ссылка не помогла.

Я хочу иметь 3 HTML-страницы.

1-я страница HTML даст мне все программы (Имя), сгруппированные по дате Так что только программы на сегодня покажут для обоих зданий.

Я хочу отобразить следующие результаты:

3-я Html-страница, чтобы дать мне все программы (Имя), сгруппированные по дате и зданию 2 (Селден). Только сегодняшние программы будут отображаться для строительства 2

Я хочу, чтобы следующие результаты отображались на 2-й и 3-й страницах:


У вас есть другие предложения?

1 Ответ

0 голосов
/ 15 июня 2011

Обычно имеет смысл выполнять Xqueries на сервере.Но тогда вам все равно придется проанализировать ответ, чтобы извлечь данные, которые вы хотите отобразить, из результата.

Итог: если ваш набор данных большой, лучше выполнить фильтрацию (запрос) на сервере и получать только минимальный набор данных по сети, используя Ajax.

Но есть возможность использовать Xquery и на стороне клиента: http://www.xqib.org/

Проверьте это и дайте мне знать, если это поможет.

...