Toon posts:

[php] [javascript] database-info in javascriptmenu

Pagina: 1
Acties:
  • 73 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

Bij het maken van een cms moet ik ook pagina's toe kunnen voegen. Nu heeft de frontpage een javascript dropdown menu. In dat menu moet ik dan de titels van de pagina's dmv php oproepen en erin schrijven.
Maar na n lange tijd van alles te proberen pukt het niet.

Hij geeft het wel weer. Alleen als er 3 pagina's in de db staan geeft hij er maar 1 weer.

dit is mn php script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
      $qry = "SELECT pagID, pagName FROM paginas WHERE parentPagID = 3 ORDER BY pagName";
      $result2 = mysql_query($qry) or die("Verbinding mislukt.");
      while ($row2 = mysql_fetch_array($result2)) {

        $pagName2 = stripslashes($row2["pagName"]);
        
        ?>

// hiermee doe ik de info wegschrijven

<?=$pagName2?>


<? } ?>


en dit is mijn javascript code

code:
1
mm_menu_0721115651_0.addMenuItem("<?=$pagName2?>");


Nu moet ik het dus eigenlijk zo hebben dat hij voor alles wat uit de db komt er een nieuw menu-item wordt aangemaakt bij js en daar dan de volgende item uit de database inzet.

Ik hoop dat jullie m'n verhaal een beetje begrijpen en jullie me kunnen helpen.

Groetjes!

  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 23-05 15:27
Wanneer het script is uitgevoerd zie je in het menu zeker alleen het laatste item uit de database.

Ik denk dat dat gebeurt, want het php-bestand haalt de informatie op uit de database en print dus de items na elkaar, hierdoor wordt alleen het laatste item gezien en toegevoegd aan het menu

[ Voor 51% gewijzigd door Wolf87 op 25-07-2004 21:14 ]


Verwijderd

Topicstarter
ja idd.....

en als ik dit
code:
1
<?=$pagName2?>


in de titel van de html zet <title><?=$pagName2?></title>
dan geeft ie alleen de eerste uit de db weer.

  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 23-05 15:27
Je zou het menuitem dus in de loop die je maakt toe moeten voegen. Want als je dit niet doet wordt hij dus overschreven (zie tevens nog mijn vorige post).

Verwijderd

Topicstarter
maar ik moet dat javascriptje dan toch moeten loopen ofzo?

  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 23-05 15:27
hoe bedoel je dat, je zin klopt niet helemaal

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Ik denk eigenlijk dat je de verschillen niet goed snapt tussen javascript en php (behalve de syntax). PHP is namelijk serverside en javascript clientside. Dat wil dus zeggen dat php eerder word uitgevoerd dan de javascript, omdat php op de server word uitgevoerd en javascript op de client.

Wat je moet doen is de javascript aanmaken met behulp van php. Voorbeeld:
PHP:
1
echo "<script language=javascript>"

Zet dit voor je while lus.

PHP:
1
echo "mm_menu_0721115651_0.addMenuItem('" . $pagName2 ."');"

Dit binnen je while lus.

PHP:
1
echo "</script>"

en dit na je while lus.

Zo zou hij moeten werken.

Verwijderd

Topicstarter
moet ik dit gedeelte:

code:
1
 mm_menu_0721115651_0.addMenuItem("<?=$pagName2?>");


dan loopen? en hoe doe ik dat dan?

en moet ik mn javascript, mn php of beide dan aanpassen?

Verwijderd

Topicstarter
he t werkt!

bedankt!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Dat weet ik ;) 8) , maar weet/snap je nu ook wat je fout hebt gedaan :? Want als je goed met php overweg wilt gaan is dat een minimum vereiste, want deze fout die je hebt gemaakt is namelijk erg basic.

Verwijderd

Topicstarter
ja snap het wel....

maar ben pas 1 week met php bezig en doe het voor de hobby dus ben zo gaandeweg wat aan het leren.

Verwijderd

Topicstarter
He,

Zit met een nieuw probleempje.....heb dat zo gekregen.

en ziet er zo uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
window.mm_menu_0802092359_0 = new Menu("root",52,16,"Verdana, Arial, Helvetica, sans-serif",10,"#FFFFFF","#CC6600","#999999","#CCCCCC","left","middle",3,1,1000,-5,7,true,false,true,0,true,true);
          <?
      $qry = "SELECT pagID, pagName FROM paginas WHERE parentPagID = 3 ORDER BY pagName";
      $result1 = mysql_query($qry) or die("Verbinding mislukt.");
      

      while ($row1 = mysql_fetch_array($result1)) {

        $pagName1 = stripslashes($row1["pagName"]);
        $pagID1 = stripslashes($row1["pagID"]);
        echo "mm_menu_0802092359_0.addMenuItem('". ("<a href=index.php?id=") . $pagID1 . (">") . $pagName1 . ("</a>") ."');";
     } 

?>
   mm_menu_0802092359_0.hideOnMouseOut=true;
   mm_menu_0802092359_0.bgColor='#666666';
   mm_menu_0802092359_0.menuBorder=1;
   mm_menu_0802092359_0.menuLiteBgColor='#FFFFFF';
   mm_menu_0802092359_0.menuBorderBgColor='#999999';



alleen als der niks in de database staat (wat weleens kan voorkomen) dan geeft javascript dus een foutmelding omdat er niks instaat, weet iemand hoe ik dit op kan lossen, dus dat als er niks in de database staat hij gewoon geen menutje weergeeft?

alvast bedankt.

Groetjes!

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Gewoon controleren mbv een if-statement of $row1["pagName"] leeg is; zo nee, geef het menu weer? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
dat moet ik dan wel in javascript doen met alle opties van het menu weergeven neem ik aan he?

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 08 augustus 2004 @ 09:44:
dat moet ik dan wel in javascript doen met alle opties van het menu weergeven neem ik aan he?
weet iemand hoe ik dit op kan lossen, dus dat als er niks in de database staat hij gewoon geen menutje
Ik vind dit een beetje tegenstrijdig :)

Maar goed; ik gok dat alle items clientside in een collection worden geladen, van waaruit het menu wordt uitgelezen. Mbv Javascript kan je vervolgens gaan bekijken of de collection een grootte heeft van 0 (geen items) of meer dan 0 (wel items), en op basis hiervan een menu genereren.

Echter, clientside Javascript hoort thuis in Webdesign & Graphics, niet in Programming & Webscripting. Dit topic verplaatsen heeft echter geen zin, aangezien er twee problemen door elkaar zijn. :) Open anders een nieuw topic in Webdesign & Graphics, met de relevante Javascript informatie (PHP komt er niet meer bij kijken).

[ Voor 48% gewijzigd door gorgi_19 op 08-08-2004 09:54 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.