点击提交按钮后,我需要使用php simpleXML构建一个分页。
这是我的xml文件
<events>
<event_data>
<id>1</id>
<name>Club 1</name>
</event_data>
<event_data>
<id>2</id>
<name>Club 2</name>
<event_data>
<event_data>
<id>3</id>
<name>Club 3</name>
</event_data>
<event_data>
<id>4</id>
<name>Club 4</name>
<event_data>
<event_data>
<id>5</id>
<name>Club 5</name>
</event_data>
<events>
我的php文件是这样的:
<form action="" method="post">
<div class="select_club">
<select name="clubname" class="club">
<option value=""> Club auswählen</option>
<option value="Club 1">Club 1</option>
<option value="Club 2">Club 2</option>
<option value="Club 3">Club 3</option>
<option value="Club 4">Club 4</option>
<option value="Club 5">Club 5</option>
</select>
</div>
<input type="submit" name="submitClub" value="Submit" />
</form>
<?php
?>
<div id="eventList">
<?php
$startPage = $_GET['page'];
$perPage = 3;
$currentRecord = 0;
$sxe = simplexml_load_file('events.xml');
if($sxe) {
if(isset($_POST['submitClub'])) {
foreach($sxe->events->event_data as $key => $value) {
$currentRecord += 1;
if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)){
echo $value->name;
echo "<br>";
}
}
//and the pagination:
for ($i = 1; $i <= ($currentRecord / $perPage); $i++) {
echo("<a href='http://hasselbach.rpdweb.de/test?page=".$i."'>".$i."</a>");
}
} else {
echo 'Keine Eevnts vorhanden';
}
} else {
echo 'Datei könnte nicht geöffnet oder gefunden werden!';
}
?>
</div>
如果我在上面的代码中这样做,我得到前3个结果,但在我点击第2页后,我得到一个空页面。 当我在我的php文件中删除提交部分时,一切正常。
如果有人可以帮助我或给我一个提示,那将是很棒的。
我也搜索了我的问题,但没有任何问题符合我的问题。
感谢大家的帮助
答案 0 :(得分:1)
我认为你的问题来自这条线:
if(isset($_POST['submitClub'])) {
当您拨打第二页时,您不会发布表单,并且未设置$ _POST ['submitClub']。
你可以试试这个:
<?php
$startPage = $_GET['page'];
$perPage = 3;
$currentRecord = 0;
$sxe = simplexml_load_file('events.xml');
if($sxe) {
$submitClub = null;
if (isset($_POST['submitClub'])) {
$submitClub = $_POST['submitClub'];
} elseif (isset($_GET['submit-club'])) {
$submitClub = urldecode($_GET['submit-club']);
}
if(!is_null($submitPost)) {
foreach($sxe->events->event_data as $key => $value) {
$currentRecord += 1;
if($currentRecord > ($startPage * $perPage) && $currentRecord < ($startPage * $perPage + $perPage)){
echo $value->name;
echo "<br>";
}
}
//and the pagination:
for ($i = 1; $i <= ($currentRecord / $perPage); $i++) {
echo("<a href='http://hasselbach.rpdweb.de/test?page=".$i."&submit-club=".urlencode($submitClub)."'>".$i."</a>");
}
} else {
echo 'Keine Eevnts vorhanden';
}
} else {
echo 'Datei könnte nicht geöffnet oder gefunden werden!';
}
答案 1 :(得分:0)
<?php
if(!$xml=simplexml_load_file("events.xml")) {
trigger_error('Error reading XML file',E_USER_ERROR);}
$ps = 3; // page size
$fr = $_GET["fr"];
if ($fr < 1) {
$fr = 1;
}
$c = 0;
foreach($xml->events->event_data as $event_data) { // ->entry
$c++;
if ($c >= $fr && $c < $fr + $ps) {
echo $c. '<p><span class="category">Company Name:
</span>'.$event_data->id.'</p>'."\n";
echo '<p><span class="category">Acc Guid: </span>'.$event_data-
>name.'</p>'."\n";
echo "</div>";
}
}
echo '<div class="w3-row ">';
if ($fr > 1) {
echo " <b><a href='http://hasselbach.rpdweb.de/test?fr=". ($fr - $ps) . "'>prev</a>";
} else {
echo " <b><strike>prev</strike>";
}
// TODO: check end of file...
echo " <a href='http://hasselbach.rpdweb.de/test?fr=" . ($fr + $ps) . "'>next</a></b>";