Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:18 Der er 14 kommentarer og
1 løsning

jQuery CSS menu med MySQL

Jeg har tilføjet MySQL database til denne CSS/jQuery menu:

http://www.sohtanaka.com/web-design/animate-navigation-with-css-jquery/

- så kan opdatere menu tekst og links, og det virker MEN kun på 1 knap (Home knap), resten af knapper vises ikke...

Jeg har oprettet tabel i db med

id,
title (tekst til menuknap),
url (linket som menuknap skal gå til).

Min kode vist her (erstatter det i "Step 1. Wireframe - HTML" på sohtanaka siden):

<body>

<?php

$file =  include($_SERVER['DOCUMENT_ROOT'].'/mysite/includes/connection.inc.php');
    if (file_exists($file) && is_readable($file)) {
      include($file);
    }
     
        $conn = dbConnect('admin');
                               
    $sql = 'SELECT id, title, url,
            DATE_FORMAT(created, "%a, %b %D, %y %H:%i") AS created
            FROM menu_text ORDER BY id ASC';
                               
    $result = $conn->query($sql) or die(mysqli_error());
                               
?>
           
<ul id="topnav">
      <li>
    <?php
        do {
              echo $row['url']; echo $row['title'] ;
          }
       
        while ($row = $result->fetch_assoc());
      ?>
      </li>
</ul>

</body>

Men hvorfor viser min jQuery menu ikke alle knapper ?

Håber nogen kan hjælpe... Tak.
Avatar billede olebole Juniormester
02. august 2009 - 18:22 #1
<ole>

Prøv at lægge et link til siden

/mvh
</bole>
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:28 #2
olebole :

jeg sidder på localhost indtil videre, har ikke lige nogen server at uploade til.

Men det eneste jeg har ændret fra sohtanaka's css/jquery menu er at til føje database og udskrive tekst og link til menuknapper, i stedet for at de er statiske.

men det virker som sagt kun men 1 knap.

Jeg ved ikke om mit loop er helt rigtigt ?

Mvh.
photoshop6_user
Avatar billede olebole Juniormester
02. august 2009 - 18:28 #3
Ikke, at det nødvendigvis betyder noget i denne forbindelse, men dette er en ret pudsig konstruktion:

$file =  include($_SERVER['DOCUMENT_ROOT'].'/mysite/includes/connection.inc.php');
    if (file_exists($file) && is_readable($file)) {
      include($file);
    }

http://dk2.php.net/manual/en/function.include.php
Avatar billede olebole Juniormester
02. august 2009 - 18:29 #4
Jeg kan ikke hjælpe, hvis jeg ikke kan se et live eksempel. Det kan være alt muligt, du gør forkert
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:30 #5
Ja, ved godt den er hjemme brygget min include, den laver jeg lige om, men include'n  virker nu fint nok :)
Avatar billede olebole Juniormester
02. august 2009 - 18:33 #6
Dette her:

<ul id="topnav">
      <li>
    <?php
        do {
              echo $row['url']; echo $row['title'] ;
          }
       
        while ($row = $result->fetch_assoc());
      ?>
      </li>
</ul>

Giver noget i stil med:

<ul id="topnav">
      <li>
      http://www.siteA.dkSiteAhttp://www.siteB.dkSiteBhttp://www.siteC.dhSiteC
      </li>
</ul>

- og det er nok ikke det, du ønsker
Avatar billede olebole Juniormester
02. august 2009 - 18:36 #7
Prøv dette i stedet:

<ul id="topnav">
    <?php
        do {
              echo "<li><a href='".$row['url']."'>".$row['title']."</a></li>";
          }
       
        while ($row = $result->fetch_assoc());
      ?>
</ul>
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:37 #8
ja det er nok mit do while loop / echo der er forkert
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:37 #9
okay det prøver jeg lige...
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 18:41 #10
det giver mig denne fejl:

Fatal error: Call to a member function fetch_assoc() on a non-object in D:\xampp\htdocs\test\index.php on line 116
Avatar billede olebole Juniormester
02. august 2009 - 18:51 #11
Dette kald er til en metode, som ikke er defineret:
    $result->fetch_assoc()

Det betyder, at dette kald:
    $result = $conn->query($sql) or die(mysqli_error());

- åbenbart ikke returnerer det forventede objekt. Hvorfor, ved jeg ikke
Avatar billede olebole Juniormester
02. august 2009 - 18:51 #12
Dette kald er til en metode på et objekt, som ikke er defineret:
    $result->fetch_assoc()

Skulle der stå  =)
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 19:18 #13
Det virker!!! :D

nu viser den alle CSS menuens knapper MED jQuery animeret effekt på knapper OG kan stadig opdatere tekst og links til menuknapper via database!!

den virkende kode:

<body>

<?php                                    
    include($_SERVER['DOCUMENT_ROOT'].'/mysite/includes/connection.inc.php');
                                                                       
    $conn = dbConnect('admin');
                                                                       
    $sql = 'SELECT id, title, url,
            DATE_FORMAT(created, "%a, %b %D, %y %H:%i") AS created
            FROM menu_text ORDER BY id ASC';
                                                                       
    $result = $conn->query($sql) or die(mysqli_error());
                                                                       
    ?>
                                   
<ul id="topnav">
    <li>
    <?php
        do{
       
        echo "<li><a href='".$row['url']."'>".$row['title']."</a></li>";
       
    }
          while ($row = $result->fetch_assoc());
   
    ?></li>
</ul>

</body>
Avatar billede photoshop6_user Nybegynder
02. august 2009 - 19:21 #14
olebole:

Tak for hjælpen,

Send lige svar, så kan give dig point :)
Avatar billede olebole Juniormester
02. august 2009 - 19:34 #15
Selvtak  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester