提交后的SimpleXML Paginate

时间:2013-08-14 09:18:14

标签: php pagination submit simplexml

点击提交按钮后,我需要使用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文件中删除提交部分时,一切正常。

如果有人可以帮助我或给我一个提示,那将是很棒的。

我也搜索了我的问题,但没有任何问题符合我的问题。

感谢大家的帮助

2 个答案:

答案 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 "  &nbsp; &nbsp;  <b><a href='http://hasselbach.rpdweb.de/test?fr=". ($fr - $ps) . "'>prev</a>";

} else {

    echo "  &nbsp; &nbsp;  <b><strike>prev</strike>";
}

// TODO: check end of file...

   echo " &nbsp; &nbsp; <a href='http://hasselbach.rpdweb.de/test?fr=" . ($fr + $ps) . "'>next</a></b>";