0

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

如果有人可以帮助我或给我提示,那就太棒了。

我也用谷歌搜索了我的问题,但没有适合我的问题。

感谢大家的帮助

4

2 回答 2

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!';
}
于 2013-08-14T09:56:25.857 回答
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>";
于 2017-11-01T14:49:25.203 回答