从PHP / MYSQL选择值填充下拉菜单。如何重新排列输出

cycfx

我将继续展示当前HTML输出的外观,并且在下面相同的小提琴中是我希望HTML输出的方式:http : //jsfiddle.net/xQ95X/3/

一切正常,我只需要此HTML结构即可使jQuery插件(Superfish)起作用。该下拉列表不适用于子代UL的LI之外的子代。它们必须嵌套在里面。

下面是阻止我以这种方式格式化HTML的部分:

  <ul class="sf-menu">

    <li><a href="#">HOME</a></li>

    <?php

    $sql="SELECT * FROM section ORDER BY orderID";
    $result=mysql_query($sql) or die ("Error!! BAD SELECT SEARCH STATEMENT");
    $nrows = mysql_num_rows($result);

    // Top level Items

    for($i=1;$i<=$nrows;$i++) {
      $row = mysql_fetch_array($result);
      extract($row);

      $sections[] = $section;
      $sectionids[] = $sectionid;

      if ($section == "FORUM") {
        echo"<li><a href='#' rel='dropmenu$i'>$section</a></li>"; 
      } else {
        echo"<li><a href='#h' rel='dropmenu$i'>$section</a></li>"; 
      }
    }

    // Submenu Items


    for($s=0;$s<count($sections);$s++) {

      /*$sm1 = ($s - 1);*/
      $sp1 = ($s + 1);

      $sql3="SELECT * FROM category WHERE sectionid='$sectionids[$s]'";
      $result3=mysql_query($sql3) or die ("Error!! BAD SELECT SEARCH STATEMENT");
      $nrows3 = mysql_num_rows($result3);

      if ($nrows3 > 0) {
        echo"<ul>";
        for($t=0;$t<$nrows3;$t++) {
          $row3 = mysql_fetch_array($result3);
          extract($row3);

          if ($type=='Photo') {
            $title20 = strtolower($title);
            $title20 = str_replace(" ", "_", $title20);
            $sec = strtolower($sections[$s]);
            $sec = str_replace(" ", "_", $sec);
            if ($sec=='photos') {
              echo"<li><a href='" . dirname($_SERVER['PHP_SELF']) . "$sec/$catID-$title20/1.html'>$title</a></li>";
            }

            else {
              echo"<li><a href='" . dirname($_SERVER['PHP_SELF']) . "$sec/photos/$catID-$title20/1.html'>$title</li></a>";
            }

          } elseif ($type=="Contact") {
            $title20 = strtolower($title);
            $title20 = str_replace(" ", "_", $title20);
            echo "<li><a href='" . dirname($_SERVER['PHP_SELF']) . "contactus/contact_$title20.html'>$title</a></li>";
          } elseif ($type=='Quote') {

            $sql4="SELECT articleID FROM article WHERE category='49' AND Now() > publishingdate ORDER BY publishingdate DESC LIMIT 0, 1";
            $result4=mysql_query($sql4) or die ("Error! bad select statement");
            $row4=mysql_fetch_array($result4);
            extract($row4);

            echo "<li><a href='" . dirname($_SERVER['PHP_SELF']) . "everton_quotes.php?id=$articleID'>$title</a></li>";
          } 
          elseif ($type=='LastMatch') {
            $sql4="select r.matchID as matchID2, r.venue, r.versus as versus2, s.year FROM regmatch r, season s WHERE r.season=s.seasonID AND Now() > r.matchdate ORDER BY r.matchdate DESC LIMIT 0,1";
            $result4=mysql_query($sql4) or die ("Error! bad select statement");
            $nrows4=mysql_num_rows($result4);
            if ($nrows4 > 0) {
              $row4=mysql_fetch_array($result4);
              extract($row4);
              if ($venue=='Home') {
                $teams = "Everton V $versus2";
                $teams2 = "everton_vs_" . str_replace(" ", "_", strtolower($versus2));
              }
              else {
                $teams = "$versus V Everton";
                $teams2 = str_replace(" ", "_", strtolower($versus2)) . "_vs_everton";
              }

              $year = str_replace("/", "-", $year);
              echo "<li><a href='" . dirname($_SERVER['PHP_SELF']) . "match/$year/$matchID2-$teams2/" . strtolower($venue) . "/matchreport.html'>$title</a></li>";
            }
          } elseif ($type=='NextMatch') {

            $sql5="select r.matchID as matchID3, r.venue, r.versus as versus2, s.year FROM regmatch r, season s WHERE r.season=s.seasonID AND r.matchdate > Now() ORDER BY r.matchdate ASC LIMIT 0,1";
            $result5=mysql_query($sql5) or die ("Error! bad select statement");
            $nrows5=mysql_num_rows($result5);
            if ($nrows5 > 0) {
              $row5=mysql_fetch_array($result5);
              extract($row5);
              if ($venue=='Home') {
                $teams = "Everton V $versus2";
                $teams2 = "everton_vs_" . str_replace(" ", "_", strtolower($versus2));
              }
              else {
                $teams = "$versus2 V Everton";
                $teams2 = str_replace(" ", "_", strtolower($versus2)) . "_vs_everton";
              }

              $year = str_replace("/", "-", $year);
              echo "<li><a href='" . dirname($_SERVER['PHP_SELF']) . "match/$year/$matchID3-$teams2/" . strtolower($venue) . "/teamnews.html'>$title</a></li>";
            }
          } else {

    // Overides for missing pages

            if($title == "Gwladys Street Preacher") {
              echo"<li><a href='/fans/121-gwladys_street_preacher/index.html'>$title</a></li>";
            } 

            elseif($title == "The Secret Fan") {
              echo"<li><a href='/news/124-secret-fan/index.html'>$title</a></li>";
            } 

            elseif($title == "Toffee Girl") {
              echo"<li><a href='/fans/125-toffee_girl/index.html'>$title</a></li>";
            } 

            else {

              echo"<li><a href='" . dirname($_SERVER['PHP_SELF']) . $link . "'>$title</a></li>";

            }

          }

        }

        echo"</ul>";
      }

    }

    echo "</ul>";

    ?>

希望我提供了足够的信息,如果您需要其他任何信息,请告诉我。尽管JSFiddle应该让您很好地了解我希望HTML如何输出。

PS-我完全知道这不是最干净的代码,我想这将需要大量重新排列才能获得所需的输出。我愿意提出建议。

模量乔

我个人将第二个for循环(我已更改为while循环)嵌套在第一个(这是非常粗糙的代码)中,但是请注意,在父循环中,该循环已从节标题中删除。

一些伪代码:

print parent unordered list start
get section data
loop through section results
    print parent list item start
    print section title
    get page data
    print unordered child list start
    loop through page results
         print child list item start
         print page info
         print child list item end
    print child unordered list end 
    print parent list item end
print parent unordered list end

从伪代码到接近您代码的内容:

$sql="SELECT * FROM section ORDER BY orderID";
$result=mysql_query($sql) or die ("Error!! BAD SELECT SEARCH STATEMENT");

// Top level Items

while($row = mysql_fetch_array($result){
    extract($row);

    if ($section == "FORUM") echo"<li><a href='#' rel='dropmenu$i'>$section</a>"; 
    else echo"<li><a href='#h' rel='dropmenu$i'>$section</a>"; 

    $sql3="SELECT * FROM category WHERE sectionid='$sectionid'";
    $pageResult=mysql_query($sql3) or die ("Error!! BAD SELECT SEARCH STATEMENT");

    echo "<ul>";
    while($page = mysql_fetch_array($pageResult){
       extract($page);
       //process and print each child <li>...</li> here 
       //(this is a cut down example) where you would add your if/elseif section
       echo "<li>$title</li>";
    }
    echo "</ul>"; //close child UL
    echo "</li>"; //close parent LI
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP MYSQL多个下拉菜单更改时选择值

来自分类Dev

PHP填充下拉菜单

来自分类Dev

从mysql填充的PHP下拉菜单不起作用

来自分类Dev

从mysql填充的PHP下拉菜单不起作用

来自分类Dev

php-mysql 在 html 下拉菜单中查询输出

来自分类Dev

使用在php和mysql中选择的下拉菜单更改文本框值

来自分类Dev

在PHP中重新排列数组值

来自分类Dev

如何在PHP中插入多个下拉菜单的值

来自分类Dev

如何使用PHP / JS计算下拉菜单的值?

来自分类Dev

如何在php的下拉菜单中显示特定值?

来自分类Dev

如何使用PHP获取HTML下拉菜单的值?

来自分类Dev

如何从下拉菜单PHP中的值查询行

来自分类Dev

PHP MYSQL Chained下拉菜单如何显示数据

来自分类Dev

php 下拉菜单中缺少值

来自分类Dev

如何使用Php Mysql中的while循环从下拉菜单中选择一个项目

来自分类Dev

PHP Ajax调用以清除并填充下拉菜单

来自分类Dev

使用下拉菜单自动填充PHP表单中的字段

来自分类Dev

在与php不同的div中填充下拉菜单

来自分类Dev

PHP-如何重新排列日期

来自分类Dev

如何使PHP natcasesort永久重新排列数组位置?

来自分类Dev

如何使PHP natcasesort永久重新排列数组位置?

来自分类Dev

从 PHP 的下拉菜单中删除 MySQL 数据库选择

来自分类Dev

PHP的MySQL下拉值选择

来自分类Dev

我如何从php下拉菜单中添加选择和更新图像

来自分类Dev

从下拉菜单将值保存到数据库(php,mysql)

来自分类Dev

根据URL参数选择下拉菜单-PHP还是jQuery?

来自分类Dev

HTML to PHP下拉菜单

来自分类Dev

从MySql和Php填充下拉列表选择

来自分类Dev

如何在PHP的下拉菜单中从MSQL数据库访问值

Related 相关文章

热门标签

归档