如何使用php将xml中的节点内容发送到另一个页面?

时间:2014-08-22 14:50:15

标签: javascript php jquery xml

如何使用php将xml节点的内容发送到另一个页面?

page.php文件

    <!DOCTYPE html>
<html>
<head>

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1  target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div class="container">
<?php
$html = "";
$url = "http://d-toma.netne.net/Data.xml";
$xml = simplexml_load_file($url);
$title=$xml->page[0]->title;
$image=$xml->page[0]->image;

echo("<div class=\"main\"><img src=\"$image\"/>$title</div>");


  for($i = 1; $i<4;$i++){
$title=$xml->page[$i]->title;
$image=$xml->page[$i]->image;



    $title= $xml->page[$i]->title;
//$title=$xml->page->content->asXML();
$html .="<div class=\"sec\"><img src=\"$image\"/>$title</div>";

 }

echo $html;

?>
</div>

</body>
<html>  

我只是想当我点击div打开另一个页面并将我点击的节点的内容放在上面 请帮帮我谢谢 我只是尝试了一切,但我不知道如何解决这个问题

2 个答案:

答案 0 :(得分:0)

您可以使用会话。需要记住的重要一点是,标题中的下方(header('Location: http://www.yoururl.com/displaypage.php');)必须与您使用/displaypage.php一起访问该网站的网址相同。

因此,如果您使用&#39; yoururl.com&#39;然后必须是:header('Location: http://yoururl.com/displaypage.php');但是如果您使用&www.39oururl.com&#39;然后必须是:header('Location: http://www.yoururl.com/displaypage.php');。这是保护您对会话的访问权限所必需的。

session_start();
$_SESSION['TitleImageInfo'] = array();    

for($i = 1; $i < 4; $i++) {

    $title=$xml->page[$i]->title;
    $image=$xml->page[$i]->image;

    //Add title, image html to the $_SESSION['TitleImageInfo'] session array.
    $_SESSION['TitleImageInfo'] = "<div class=\"sec\"><img src=" . $image . "/>" . $title . "</div>";
}


header("Location: http://www.yoururl.com/displaypage.php");

在displaypage.php上:

<?php
    session_start();

    for($i = 1; $i < count($_SESSION['TitleImageInfo']); $i++) {
        echo($_SESSION['TitleImageInfo'][i]);
    }
?>

答案 1 :(得分:0)

下一个解决方案是您需要的,只有我使用jQ:

<!DOCTYPE html>
<html>
   <body>
    <header>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

        <style>
            .container {
                position: relative;
                width: 100%;
            }

            .menu {
                float: left;
                width: 25%;
            }

            .menu a {
                text-decoration: none;
            }

            .page {
                float: left;
                width: 75%;
            }
        </style>
    </header>
    <body>
        <div class="container">
            <div class="menu">
                <ul>
                </ul>
            </div>
            <div class="page">
            </div>
        </div>

        <script>
            var $pageCollection;

            function buildMenu($xmlDoc) {
                var $menu = $('div.menu > ul'),
                    $pageDetail = $('div.page'),
                    items = [];

                // Get page collection
                $pageCollection = $xmlDoc.find('page');

                $pageCollection.each(function (index, element) {
                    var $page = $(element),
                        item = $('<li><a href="javascript:void(0)" data-index="' + index + '">' 
                            + $page.find('title').html()
                            + '<br />' + $page.find('desc').html() + '</a></li>');

                    items.push(item);
                });

                // Show page 0 for default
                var $firstPage = $pageCollection.first(),
                    $contentPage = $firstPage.find('content').html();

                $pageDetail.html($contentPage);

                // Add event handlers
                $menu.append(items);
                $menu.on('click', 'a', onAnchorClick);
            }

            function getXml(url, callback) {
                $.get(url, function (response) {
                    var $xmlDoc = $(response);

                    callback($xmlDoc);
                });
            }

            function onAnchorClick(event) {
                var $pageDetail = $('div.page'),
                    $anchor = $(event.currentTarget),
                    index = $anchor.attr('data-index');

                // Clear previous content
                $pageDetail.empty();

                // Show current page
                var $currentPage = $pageCollection.eq(index),
                    $contentPage = $pageCollection.find('content').html();

                $pageDetail.html($contentPage);
            }

            $(function () {
                var url = 'http://d-toma.netne.net/Data.xml';

                getXml(url, buildMenu);
            });
        </script>
    </body>
</html>

此解决方案使用AJAX XML文件加载,并解析此content标记的查找。菜单div中的锚点以XML格式保存索引位置,使用它来选择XML页面集合中的当前页面。

问候!