PHP code te lang???

Pagina: 1
Acties:

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Met onderstaand PHP script(je :?) contoleer ik eerst op welk woord $location bevat, als dan $location == $name, dan bepaal ik welke class die moet pakken (buttonsnonactive voor niet active buttons, en buttons voor actieve buttons) het werkt zo wel, maar ik weet denk ik bijna zeker dat diet heel erg omslachtig is. weet iemand een betere manier om dit aan te pakken?
PHP:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?
$name1  = "Home";                    $title1  = "Introductie";
$name2  = "Computersopmaat";        $title2  = "Computers op maat";
$name3  = "Websites";                $title3  = "Websites";
$name4  = "Communicatie";            $title4  = "Communicatie";
$name5  = "Advies";                    $title5  = "Advies";
$name6  = "Netwerken";                $title6  = "Netwerken";
$name7  = "Portfolio";                $title7  = "Portfolio";
$name8  = "LocatieenContact";        $title8  = "Locatie en contact";
$name9  = "Informatieaanvraag";        $title9  = "Informatie aanvraag";
$name10 = "Gastenboek";                $title10 = "Gastenboek";
$name11 = "dezemaand";                $title11 = "Deze maand!!!";
                                    

$activeclass = "buttons";
$nonactiveclass = "buttonsnonactive";


if ($name1 == "$location") {
    $class1 = "$activeclass";
    }
else {
    $class1 = "$nonactiveclass";
}

if ($name2 == "$location") {
    $class2 = "$activeclass";
    }
else {
    $class2 = "$nonactiveclass";
}

if ($name3 == "$location") {
    $class3 = "$activeclass";
    }
else {
    $class3 = "$nonactiveclass";
}

if ($name4 == "$location") {
    $class4 = "$activeclass";
    }
else {
    $class4 = "$nonactiveclass";
}

if ($name5 == "$location") {
    $class5 = "$activeclass";
    }
else {
    $class5 = "$nonactiveclass";
}

if ($name6 == "$location") {
    $class6 = "$activeclass";
    }
else {
    $class6 = "$nonactiveclass";
}

if ($name7 == "$location") {
    $class7 = "$activeclass";
    }
else {
    $class7 = "$nonactiveclass";
}

if ($name8 == "$location") {
    $class8 = "$activeclass";
    }
else {
    $class8 = "$nonactiveclass";
}

if ($name9 == "$location") {
    $class9 = "$activeclass";
    }
else {
    $class9 = "$nonactiveclass";
}

if ($name10 == "$location") {
    $class10 = "$activeclass";
    }
else {
    $class10 = "$nonactiveclass";
}

if ($name11 == "$location") {
    $class11 = "$activeclass";
    }
else {
    $class11 = "$nonactiveclass";
}


echo    "
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class1'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name1&amp;title=$title1\">Start</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class2'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name2&amp;title=$title2\">Computers</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class11'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name11&amp;title=$title11\">Deze maand</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class3'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name3&amp;title=$title3\">Websites</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class4'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name4&amp;title=$title4\">Communicatie</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class5'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name5&amp;title=$title5\">Advies</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class6'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name6&amp;title=$title6\">Netwerken</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class7'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name7&amp;title=$title7\">Portfolio</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class8'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name8&amp;title=$title8\">Contact</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class9'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name9&amp;title=$title9\">Info aanvraag</a></u></td>
                    </tr>
                    <tr> 
                      <td width='100%' valign='middle' height='35' class='$class10'>&amp;#160;&amp;#160;&amp;#160; 
                        <u><a href=\"index.php?location=$name10&amp;title=$title10\">Gastenboek</a></u></td>
                    </tr>
                    ";
?>

mijn T.net systeemspecspagina


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

switch() ?

Doet iets met Cloud (MS/IBM)


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Kijk eens naar een array ofzow ;)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
zorg ervoor dat die class dingen standaard inactive zijn
(evt met een leuke for constructie, waarbij je $help = 'class$i'; $($class) = $inactiveclass; doet)

Ga daarna met bijv een switch-case constructie werken.

Wat waarschijnlijk veel handiger is, is een array maken, met de active/inactive velden er in.

En met een for loop ze allemaal op inactive zetten, tenzij de naam overeenkomt met de location.

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Op maandag 01 oktober 2001 20:14 schreef D2k het volgende:
switch() ?
dat werkt helaas niet, omdat ik met if en else werk, en niet alleen met if.

mijn T.net systeemspecspagina


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op maandag 01 oktober 2001 20:22 schreef RRX het volgende:
dat werkt helaas niet, omdat ik met if en else werk, en niet alleen met if.
Niet als je een paar handige constructies toepast.

array's kan een hoop schelen iig.

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Op maandag 01 oktober 2001 20:21 schreef ACM het volgende:
zorg ervoor dat die class dingen standaard inactive zijn
(evt met een leuke for constructie, waarbij je $help = 'class$i'; $($class) = $inactiveclass; doet)

Ga daarna met bijv een switch-case constructie werken.

Wat waarschijnlijk veel handiger is, is een array maken, met de active/inactive velden er in.

En met een for loop ze allemaal op inactive zetten, tenzij de naam overeenkomt met de location.
uuhhmmm, ja een for loop heb ik nog nooit gedaan :?

wacht ff, ik ga eerst eens info zoeken over een for loop.

mijn T.net systeemspecspagina


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
PHP:
1
2
3
4
5
6
7
<?
for (expr1; expr2; expr3) statement

//dus :?

for ($name1; $name2; $name3; $name4; $name5; $name6; $name7; $name8; $name9; $name10; $name11) statement
?>

maar wat ik nou weer bij die statements moet invullen?? omdat ik bij die buttons alleen ...

ik snap er geen f*ck van ;( hmmmm

bij php.net geven ze zo'n voorbeeldje:
PHP:
1
2
3
4
<?
for ($i = 1; $i <= 10; $i++) {
    print $i;
?>

dus dat betekend? ik zie het nog niet zo goed ;(

mijn T.net systeemspecspagina


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
PHP:
1
2
3
4
5
<?
for ($i = 1; $i <= 10; $i++) {
    print $i;
}
?>

Laat $i beginnen bij 1 ($i = 1) en zolang het niet 10($i <= 10) is, steeds met 1 ophogen ($i++)

Kijk er es rustig naar, speel er es mee. Moet lukken dan

  • Marv
  • Registratie: Oktober 2000
  • Laatst online: 11-06 06:52
Op maandag 01 oktober 2001 20:48 schreef RRX het volgende:
PHP:
1
2
3
4
<?
for ($i = 1; $i <= 10; $i++) {
    print $i;
?>
i wordt 1, voor i = 1 tot (en met) 10 do: print $i
hoog hierna i met 1 op.

"Everything I've ever done or said is the complete opposite of what I've wanted" -- George


  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 15-09 12:33
Hieronder een oplossing. Is zeker niet optimaal, zijn een aantal dingen die handiger kunnen maar we proberen het nu ook maar ff goed leesbaar te houden voor de beginner :)

BTW ja, ik zit me te vervelen :) Heb eigenlijk nog meeeeeeer dan voldoende te doen maar ff geen zin in echt nadenken ;) Kan beter noobs helpen dan gaan Counter-Striken ;)
BTW Onderstaande code is niet getest..
PHP:
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
<?
$classes = array(
  "Home => "Introductie",
  "Computersopmaat" => "Computers op Maat"
  );

while(list($name, $title) = each($classes))
{
  if($name == $location)
  {
    $class = 'buttons';
  }
  else
  {
    $class = 'buttonsnonactive';
  }
  print "
     <tr>
         <td width='100%' valign='middle' height='35' class='$class'>
           &amp;#160;&amp;#160;&amp;#160;
           <u><a href='index.php?location=$name&amp;title=$title'>Start</a></u>
          </td>
     </tr>
  ";
}
?>

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
om te kijken of ik het begrijp zet ik wel ff een uitleg van hoe ik denk dat het werkt bij elk stukje
PHP:
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
28
29
30
31
32
<?
/* Je zet alles in een array (een rijtje?) */

$classes = array(
  "Home" => "Introductie",
  "Computersopmaat" => "Computers op Maat"
  );

/* Elke keer als er een nieuwe waarde in de array bij komt print ie dat stukje bij print opnieuw met de volgende waardeuit de array (daar zorgt de while voor) */
/* de eerste "$name, $title" haalt ie dus bij ""Home" => "Introductie"" weg */
/* als je bij een array dus "1" => "2" => "3" zou neerzetten en bij list($blaat,$blaaten,$blater) zou $blaat 1 zijn $blaaten 2 zijn en $blater 3 */

while(list($name, $title) = each($classes))
{
  if($name == $location)
  {
    $class = 'buttons';
  }
  else
  {
    $class = 'buttonsnonactive';
  }
  print "
     <tr>
         <td width='100%' valign='middle' height='35' class='$class'>
           &amp;#160;&amp;#160;&amp;#160;
           <u><a href='index.php?location=$name&amp;title=$title'>$title</a></u>
          </td>
     </tr>
  ";
}
?>

heb ik het zo goed???

mijn T.net systeemspecspagina


  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 15-09 12:33
Nope, je moet gewoon dit stukje:
PHP:
1
2
3
4
5
6
<?
$classes = array(  
  "Home" => "Introductie",
  "Computersopmaat" => "Computers op Maat"
);
?>

verder invullen. Zag trouwens dat ik een " achter Home vergeten ben.

Maar zoek eerst ff uit WAT die code precies allemaal doet voor je meer vragen gaat stellen en het gaat copy/pasten naar je server..

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
ik wou die ander post niet editen maar ik wou een nieuwe reactie plaatsen, bij deze:

om te kijken of ik het begrijp zet ik wel ff een uitleg van hoe ik denk dat het werkt bij elk stukje
PHP:
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
28
29
30
31
32
<?
/* Je zet alles in een array (een rijtje?) */

$classes = array(
  "Home" => "Introductie",
  "Computersopmaat" => "Computers op Maat"
  );

/* Elke keer als er een nieuwe waarde in de array bij komt print ie dat stukje bij print opnieuw met de volgende waardeuit de array (daar zorgt de while voor) */
/* de eerste "$name, $title" haalt ie dus bij ""Home" => "Introductie"" weg */
/* als je bij een array dus "1" => "2" => "3" zou neerzetten en bij list($blaat,$blaaten,$blater) zou $blaat 1 zijn $blaaten 2 zijn en $blater 3 */

while(list($name, $title) = each($classes))
{
  if($name == $location)
  {
    $class = 'buttons';
  }
  else
  {
    $class = 'buttonsnonactive';
  }
  print "
     <tr>
         <td width='100%' valign='middle' height='35' class='$class'>
           &amp;amp;amp;#160;&amp;amp;amp;#160;&amp;amp;amp;#160;
           <u><a href='index.php?location=$name&amp;amp;amp;title=$title'>$title</a></u>
          </td>
     </tr>
  ";
}
?>

heb ik het zo goed???
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
/* ik kom er net ook achter dat */

[..]

$classes = array(  "Home" => "Introductie" => "derde waarde",

[..]

while(list($name, $title, $buttontitle) = each($classes))

[..]

/* niet werkt :? */
?>

mijn T.net systeemspecspagina


  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 15-09 12:33
Klopt.
$blaat = array("home" => "Introductie");

geeft een key/value combinatie aan. Je krijgt dus iets als:

$blaat["home"] = "Introductie";

Als je:

"bla1" => "bla2" => "bla3"

doet dan snapt PHP er geen kont van :) Ik ook niet trouwens :) Bovenstaande is niet bepaald geldig.

Maar als ik jou was zou ik ff een basis PHP tutorial doorlezen.. Als je alleen if() en print() kent kom je niet ver ;)

Kijk op z'n minst even naar de eerste hoofdstukken van de PHP manual (variables, loops, conditionals, functions).

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
ik begin het steeds beter te snappen, ik heb nu een array in een array gezet, want ik heb 3 variabelen nodig:
  • De weergavenaam van de knop ($buttontitle)
  • De paginalocatie ($location)
  • De Paginatitel ($title)
dit heb ik nu
PHP:
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
<?
$buttons = array("Start" => array("Home","Introductie"),"Computers op maat" => array("Computersopmaat","Computers op Maat")
);

while ( (list($buttontitle,$subarray) = each($buttons)) And (list($name,$title) = each($subarray)) )
      
{
  if($name == $location)
  {
    $class = 'buttons';
  }
  else
  {
    $class = 'buttonsnonactive';
  }
  print "
     <tr>
         <td width='100%' valign='middle' height='35' class='$class'>
           &amp;#160;&amp;#160;&amp;#160;
           <u><a href='test.php?location=$name&amp;title=$title'>$buttontitle</a></u>
          </td>
     </tr>
  ";
}
?>

Alleen verschuift er nu op de 1 of andere manier wat :?

voor $buttontitle krijg ik wel de goede binnen dus:
Start &
Computers op maat

Maar voor
$name krijg ik 0 of 1
en voor $title krijg ik de eerste van de subarray.

Maar ik begin het nu te snappen, en dat is al heel wat :) ik ben er heel dichtbij, dat weet ik wel :)

genoeg geleerd voor vandaag, ik ga pitten, tot morgen en bedankt allemaal :)

mijn T.net systeemspecspagina


Verwijderd

Laat ik eens kijken of ik PHP nog snap...
RRX: Weet iemand een betere manier om dit aan te pakken?
Wat dacht je hier van?
PHP:
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
28
29
30
<?
$class = array(
    "Home" => "Introductie",
    "Computersopmaat" => "Computers op maat",
    "Websites" => "Websites",
    "Communicatie" => "Communicatie",
    "Advies" => "Advies",
    "Netwerken" => "Netwerken",
    "Portfolio" => "Portfolio",
    "LocatieenContact" => "Locatie en contact",
    "Informatieaanvraag" => "Informatie aanvraag",
    "Gastenboek" => "Gastenboek",
    "dezemaand" => "Deze maand!!!"
);
$active = array("buttonsnonactive", "buttons");

foreach ($class as $name => $title) {
    printf(
        '<tr>
           <td width="100%%" valign="middle" height="35" class="%s">
             <a href="index.php?location=%s&amp;amp;title=%s">%s</a>
           </td>
         </tr>',
         $active[ $class[$name]==$location ];
         urlencode($name),
         urlencode($title),
         htmlentities($title),
    );
}
?>

Niet getest. :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Ik heb trouwens je topictitel ietsje duidelijker gemaakt ;)

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Op maandag 01 oktober 2001 23:59 schreef RRX het volgende:
ik begin het steeds beter te snappen, ik heb nu een array in een array gezet, want ik heb 3 variabelen nodig:
  • De weergavenaam van de knop ($buttontitle)
  • De paginalocatie ($location)
  • De Paginatitel ($title)
dit heb ik nu
PHP:
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
<?
$buttons = array("Start" => array("Home","Introductie"),"Computers op maat" => array("Computersopmaat","Computers op Maat")
);

while ( (list($buttontitle,$subarray) = each($buttons)) And (list($name,$title) = each($subarray)) )
      
{
  if($name == $location)
  {
    $class = 'buttons';
  }
  else
  {
    $class = 'buttonsnonactive';
  }
  print "
     <tr>
         <td width='100%' valign='middle' height='35' class='$class'>
           &amp;amp;#160;&amp;amp;#160;&amp;amp;#160;
           <u><a href='test.php?location=$name&amp;amp;title=$title'>$buttontitle</a></u>
          </td>
     </tr>
  ";
}
?>

Alleen verschuift er nu op de 1 of andere manier wat :?

voor $buttontitle krijg ik wel de goede binnen dus:
Start &
Computers op maat

Maar voor
$name krijg ik 0 of 1
en voor $title krijg ik de eerste van de subarray.

Maar ik begin het nu te snappen, en dat is al heel wat :) ik ben er heel dichtbij, dat weet ik wel :)

genoeg geleerd voor vandaag, ik ga pitten, tot morgen en bedankt allemaal :)
Het is al gelukt :)

dit:
PHP:
1
2
3
4
<?
array("Start" => array("Home","Introductie"),"Computers op maat" => array("Computersopmaat","Computers op Maat")
);
?>

moest natuurlijk dit:
PHP:
1
2
3
4
<?
array("Start" => array("Home" => "Introductie"),"Computers op maat" => array("Computersopmaat" => "Computers op Maat")
);
?>

zijn :)

Thanx iedereen :)

mijn T.net systeemspecspagina


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Topicstarter
Op dinsdag 02 oktober 2001 09:18 schreef ACM het volgende:
Ik heb trouwens je topictitel ietsje duidelijker gemaakt ;)
Thanx :)

mijn T.net systeemspecspagina

Pagina: 1