如何使用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打开另一个页面并将我点击的节点的内容放在上面 请帮帮我谢谢 我只是尝试了一切,但我不知道如何解决这个问题
答案 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页面集合中的当前页面。
问候!