Toon posts:

[javascript] if functie

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

Verwijderd

Topicstarter
Bij het maken van een drop down menu zit ik met het volgende probleem:

( heb dit topic trouwens al in Programming & Webscripting. geopend maar moest hem hier openen dus vandaar)

Maar mijn probleem is het volgende.

De data die in het dropdown menu komt te staan wordt via php uit n database opgeroepen. Alleen komt het ook weleens voor dat der geen data is en er dus niks moet worden weergegeven. dan geeft javascript dus een foutmelding;

Dit is mijn scriptje:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
window.mm_menu_0721115651_0 = new Menu("root",47,16,"Verdana, Arial, 
Helvetica, 
sans-serif",10,"#FFFFFF","#CC6600","#999999","#CCCCCC","left","middle",3,1,1000,-
5,7,true,false,true,0,false,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_0721115651_0.addMenuItem('" . 
("<a href=index.php?id=") . $pagID1 . (">") . $pagName1 . ("</a>") . "');";
     } 

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



en daar heb ik nu een if functie ingezet. weet alleen nauwelijks iets van javascript af dus kan me misschien iemand hiermee helpen? alvast bedankt.

Dit is het script met de if functie erin:

(maar volgens mij klopt der niks van 8)7

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if (" <?
      $qry = "SELECT pagID, pagName FROM paginas WHERE parentPagID = 3 ORDER BY pagName";
      $result1 = mysql_query($qry) or die("Verbinding mislukt."); ?>"  == true) 
{
window.mm_menu_0721115651_0 = new Menu("root",47,16,"Verdana, Arial, Helvetica, 
sans-serif",10,"#FFFFFF","#CC6600","#999999","#CCCCCC","left","middle",3,1,1000,-5,7,true,false,true,0,false,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_0721115651_0.addMenuItem('" . 
("<a href=index.php?id=") . $pagID1 . (">") . $pagName1 . ("</a>") . "');";
     } 

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



alvast bedankt!

[ Voor 24% gewijzigd door Verwijderd op 08-08-2004 13:22 ]


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 16:26

glashio

C64 > AMIGA > PC

offtopic:
Kan je je [code] in breedte inkorten, hier op 1600x1200 loopt ie zelfs uit me scherm :)

[ Voor 14% gewijzigd door glashio op 08-08-2004 13:46 ]

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Verwijderd

Topicstarter
hoe doe ik dat

Verwijderd

snap je zelf waar je mee bezig bent? je checked nu clientside of php code true is :?
binnen die php wordt niks geechoed, dus die check levert natuurlijk niks op
hoe doe ik dat
hier en daar op enter drukken

[ Voor 16% gewijzigd door Verwijderd op 08-08-2004 13:14 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:37

crisp

Devver

Pixelated

Je hebt een clientside probleem; kijk dus eens wat voor code dit oplevert (view-source in je browser) als het fout gaat, en dan zal je ws ook zien waarom het fout gaat.

Intentionally left blank


  • reinhrst
  • Registratie: December 2003
  • Niet online
Beetje onoverzichtelijk ziet het er wel uit.....

Ik zou de if in php doen, en allleen de javascript genereren die daardwerlijk uitgevoerd dient te worden. M.a.w., als er niets in je db staat, genereer je dus een lege functie

Claude


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:39

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    $result = mysql_query("SELECT pagID, pagName FROM paginas WHERE parentPagID = 3 ORDER BY pagName");
    
    if( mysql_error() != '' )
    {
        die( "MySQL-error " . mysql_errno() . ": " . mysql_error() );
    }
    
    while ( $row = mysql_fetch_assoc( $result ) )
    {
        if( $row['pagName'] != '' && $row['pagId'] != '' )
        {
            echo "mm_menu_0721115651_0.addMenuItem('<a href=index.php?id=" . 
                 stripslashes( $row['pagId'] ) . ">" . stripslashes( $row['pagName'] ) . "</a>');";
        }
    }


En je code is een bende :+ Als je strings concat, hoef je niet élk stukje tussen haakjes te zetten ;)

/edit:
heb dit topic trouwens al in Programming & Webscripting. geopend maar moest hem hier openen dus vandaar
/14 is voor pruts0rs, /13 voor die-hards 8)7

[ Voor 24% gewijzigd door Thijsmans op 08-08-2004 14:26 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Hmz ubb-parser heeft een updateje nodig zie ik :+

<? == deprecated

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Ik gebruik altijd (voor het probleem in Programming & Webscripting):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function db_query($v)
{
  // check for query errors, log query, etc
  return mysql_query($v);
}

$result = db_query(sprintf(""));
if ($row = mysql_fetch_array($result))
{
  do
  {
  }
  while ($row = mysql_fetch_array($result))
}
else
{
  // no rows
}

[ Voor 10% gewijzigd door Olaf van der Spek op 08-08-2004 15:11 ]


Verwijderd

Topicstarter
ja het grote probleem is dus dat ik gewoon moet kijken of er data in de database zit en als dat er niet inzit ik iets anders moet weergeven en t lukt me echt van geen enuh sodemieter,

wordt er helemaal gek van |:(

is er niet een of andere functie die dat kan controleren?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:39

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

|:( [rml]Prammenhanger in "[ javascript] if functie"[/rml]

't Is lastig heh, twee topics over exact hetzelfde onderwerp doorlezen 8)7 Kijk met name even naar regel 10.



/edit

Nee maar, gorgi_19 heeft eindelijk weer eens wijze woorden gesproken 8)7
gorgi_19 schreef op 08 augustus 2004 @ 15:01:
Neem anders eens een tutorial over PHP icm MySQL door, want ik heb het idee dat je nog moeite hebt met de basis en niet echt weet wat je aan het doen bent :)

[ Voor 80% gewijzigd door Thijsmans op 08-08-2004 15:47 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Verwijderd

Topicstarter
ja ben ook nog lerende,

maar heb al wel wat dingen in mekaar gezet.

Alleen aangezien ik php nog niet zo lang ken zie ik nog veel dingen over het hoofd en lukken de dingen die niet heel erg standaard zijn (zoals dingen oproepen uit database enzo en deleten en inserten) me nog voor geen meter.

Verwijderd

Topicstarter
heb nu dit van prammenhanger:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
    $result = mysql_query("SELECT pagID, pagName FROM paginas WHERE parentPagID = 1 ORDER BY pagName"); 
     

    while ( $row = mysql_fetch_array( $result ) ) 
    { 
       
    if( $row['pagName'] != '' && $row['pagId'] != '' ) 
      { 
                        echo "mm_menu_0721115651_0.addMenuItem('<a href=index.php?id=" . 
                 stripslashes( $row['pagId'] ) . ">" . stripslashes( $row['pagName'] ) . "</a>');"; 
        } 
    
    
    else
    { 
    echo "lala";

    }
    }
    
?>



alleen doet ie niet wat ie moet doen....heb al vanalles geprobeerd maar kom der nog neit uit.

Als er data in de datbase zit geeft ie namelijk lala weer en als er niks in de database zit geeft ie helemaal niks weer :?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:39

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Als je 'lala' ziet, voldoet $row['pagName'] en/of $row['pagId'] niet aan de gestelde voorwaarde: anders zijn dan '' (lege string). Dus ik stel voor dat je regel 17 verandert in het volgende:

PHP:
1
die( print_r( $row ) );


Zo kijk je wat de output van $row wél is (belangrijke stap in het debuggen).

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 16:26

glashio

C64 > AMIGA > PC

Idd :)
PHP:
1
2
3
4
5
die(  echo '<pre>';print_r( $row );echo '</pre>' );

of

die(  echo nl2br( print_r( $row,true ) ) );

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Verwijderd

Topicstarter
hij geet nu dit weer:


Array ( [0] => 72 [pagID] => 72 [1] => Kunst [pagName] => Kunst ) 1


alleen zou hij nu gewoon wel iets moeten weergeven aangezien er wel iets in de database staat.

ook als ik trouwens regel 8 verander in

code:
1
 if( $row['pagName'] == '' && $row['pagId'] == '' )


blijft hij

Array ( [0] => 72 [pagID] => 72 [1] => Kunst [pagName] => Kunst ) 1


weergeven

[ Voor 39% gewijzigd door Verwijderd op 08-08-2004 16:40 ]


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:39

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

* Thijsmans mompelt iets over een klok en een klepel 8)7

In die if() (wat overigens geen functie is, maar ik meen een Language Constructor) verandert hij ook niets aan $row, hij leest het alleen uit. Blijkbaar zit daar dus iets niet in orde. En wat zien we met de debug-output erbij? De array $row heeft geen index ['pagId'], maar een index ['pagID'] (d/D) :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:37

crisp

Devver

Pixelated

dit wordt naar mijn mening teveel een PHP verhaal, maar waar het hier om gaat - basis programmeer logica - is te simpel voor P&W. Vandaar dit slotje.

Intentionally left blank

Pagina: 1

Dit topic is gesloten.