1

我目前在一个 DJ 的网站上工作,他使用 GigaTools 进行演出。目前,我有用 php 解析的 GigaTools 提要(即 xml),并在网站上显示一个表格。但这仅限于显示的最大记录数 (12),因为这适合网站。

这是我目前正在使用的脚本:

      <?php 

    $gigatools = simplexml_load_file('http://gigs.gigatools.com/user/MikeRavelli.xml');
    echo "<table id='gigs_parse'>\n";

    for($i = 0; $i < 12; $i++) {
      $event = $gigatools->event[$i];
      $day=$event->day;
      $month=$event->month;
      $name=$event->name;
      $venue=$event->venue;
      $city=$event->city;
      $country=$event->country;

      if($month == 1){
        $maand = 'JAN';
      } else if($month == 2){
        $maand = 'FEB';
      } else if($month == 3){
        $maand = 'MAR';
      } else if($month == 4){
        $maand = 'APR';
      } else if($month == 5){
        $maand = 'MAY';
      } else if($month == 6){
        $maand = 'JUN';
      } else if($month == 7){
        $maand = 'JUL';
      } else if($month == 8){
        $maand = 'AUG';
      } else if($month == 9){
        $maand = 'SEP';
      } else if($month == 10){
        $maand = 'OCT';
      } else if($month == 11){
        $maand = 'NOV';
      } else if($month == 12){
        $maand = 'DEC';
      }

      echo "<tr class='row'><td class='date'><span>",$day,"</span><br/>",$maand,"</td>\n";
      echo "<td class='party'><a href='",$url,"' target='_blank'>",$name,"</td>\n";
      echo "<td class='location'>",$venue,", ",$city,", ",$country,"</td>\n";
    }
    echo "</table>";
    ?>

我希望 xml 提要显示在多个选项卡中,以便可以显示更多的演出然后 12。例如,如果提要中有 15 个演出,我希望前 12 个在第一个选项卡上,另外 3 个在第二个标签。我想根据提要中的演出数量显示尽可能多的标签。因此,选项卡的数量必须根据提要中的演出数量自动更改。所以我不会得到任何空标签。

我现在搜索了半天,在互联网上找不到任何好的解决方案。我不擅长编程,所以我真的需要一个可以调整的教程或脚本。

有人可以通过例如教程为我指明正确的方向或帮助我为此编写脚本吗?

提前致谢!顺便说一句,对不起我的英语不好;)

4

2 回答 2

1

您可以使用JQuery UI Tabs

您可以在此处找到一个非常简单的示例。更改脚本以生成这样的表应该很容易

<div id="tabs">
<ul>
    <li><a href="#tabs-1">First</a></li>
    <li><a href="#tabs-2">Second</a></li>
    <li><a href="#tabs-3">Third</a></li>
</ul>
<div id="tabs-1">
    <p>First tab contents</p>
</div>
<div id="tabs-2">
    <p>Second tab contents</p>
</div>
<div id="tabs-3">
    <p>Third tab contents</p>
</div>
</div>

<head>之后,您必须在文档中添加 JQuery UI 所需的所有 js 和 css :

<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
<script src="../../jquery-1.8.0.js"></script>
<script src="../../ui/jquery.ui.core.js"></script>
<script src="../../ui/jquery.ui.widget.js"></script>
<script src="../../ui/jquery.ui.tabs.js"></script>
<link rel="stylesheet" href="../demos.css">

最后,只需调用实际创建选项卡的函数

<script>
$(function() {
    $( "#tabs" ).tabs();
});
</script>
于 2012-09-27T13:29:36.593 回答
0

谢啦!正在为 Gigatools 搜索 PHP XML 解析器...

我也是 PHP 新手,但这样会不会更好:

<?php 

    $feed = 'http://gigs.gigatools.com/user/MikeRavelli2.xml';
    $gigatools = simplexml_load_file($feed)or
          die ("Fehler beim Laden des Feeds: ".$feed."\n");;
    $countgigs = count($gigatools->event);
    echo "<table id='gigs_parse'>\n";
    if ($countgigs > 12) {
        $gigs = 12;
    } else {
        $gigs = $countgigs;
    }

    for($i = 0; $i < $gigs; $i++) {
      $event = $gigatools->event[$i];
      $day=$event->day;
      $month=$event->month;
      $name=$event->name;
      $venue=$event->venue;
      $city=$event->city;
      $country=$event->country;

      if($month == 1){
        $maand = 'JAN';
      } else if($month == 2){
        $maand = 'FEB';
      } else if($month == 3){
        $maand = 'MAR';
      } else if($month == 4){
        $maand = 'APR';
      } else if($month == 5){
        $maand = 'MAY';
      } else if($month == 6){
        $maand = 'JUN';
      } else if($month == 7){
        $maand = 'JUL';
      } else if($month == 8){
        $maand = 'AUG';
      } else if($month == 9){
        $maand = 'SEP';
      } else if($month == 10){
        $maand = 'OCT';
      } else if($month == 11){
        $maand = 'NOV';
      } else if($month == 12){
        $maand = 'DEC';
      }

      echo "<tr class='row'><td class='date'><span>",$day,"</span><br/>",$maand,"</td>\n";
      echo "<td class='party'><a href='",$url,"' target='_blank'>",$name,"</td>\n";
      echo "<td class='location'>",$venue,", ",$city,", ",$country,"</td>\n";
    }
    echo "</table>";
    ?>
于 2015-07-26T17:21:27.687 回答