You are not logged in.

  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

1

Saturday, May 5th 2012, 9:25pm

if - else Verschachtelt

Und zwar möchte ich prüfen, dass wenn kein Paramter (Get-Methode) bei ?site=xx angeben ist, dass dann bei diesem Link die class active genutzt wird.

Habe soweit auch nen Code, der leider nicht geht und ich habe keine Ahnung, was da nicht will (keine Syntaxtfehler laut Dreamweaver).


PHP Source code

1
<a href="index.php" class="<?php if ( $_GET['site'] !== "fuhrpark" )                     {                    }                    else {                        if ( $_GET['site'] !== "biodiesel" )                        {                        }                        else {                            if ( $_GET['site'] !== "impressum" )                            {                            }                            else {                                if ($_GET['site'] !== "partner" )                                {                                }                                else {                                    echo "active";                                }                            }                        }                    }                        ?>"><span>home</span></a>
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

Fabo

Member

  • "Fabo" is male

Posts: 696

Location: Gladbeck

Occupation: Praktikant bei Xovi GmbH

  • Send private message

2

Saturday, May 5th 2012, 9:32pm

PHP Source code

1
2
3
4
5
6
<?php
$site $_GET['site'];
$class = ($site == 'fuhrpark' || $site == 'biodiesel' || $site == 'impressum' || $site == 'partner' 'active' '');

echo '<a href="index.php" class="'.$class.'"><span>home</span></a>';
?>


Oder

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sites = array(
    'fuhrpark',
    'biodiesel',
    'impressum'
    'partner'
);

$class = (in_array($_GET['site'], $sites) ? 'active' '');

echo '<a href="index.php" class="'.$class.'"><span>home</span></a>';
?>


Oder


PHP Source code

1
<a href="index.php" class="<?php if ($_GET['site'] == "fuhrpark" || $_GET['site'] == "biodiesel" || $_GET['site'] == "impressum" || $_GET['site'] == "partner") { echo "active"; } ?>"><span>home</span></a>

This post has been edited 4 times, last edit by "Fabo" (May 5th 2012, 9:44pm)


  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

3

Saturday, May 5th 2012, 9:37pm

Version 1:
Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\index.php on line 50


Version 2: Navigation wird nicht angezeigt und:
[list]Notice: Undefined variable: site in C:\xampp\htdocs\index.php on line 55

Warning: in_array() expects at least 2 parameters, 1 given in C:\xampp\htdocs\index.php on line 55[/list]
Version 3: Geht! :)
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

4

Saturday, May 5th 2012, 9:37pm

Glaubst du jemand wird es durchscrollen und verstehen?
Bitte Zeilenumbrüche verwenden.

PHP Source code

1
2
3
4
5
<a href="index.php" class="<?php
if (in_array($_GET['site'], array('fuhrpark''biodiesel''impressum''partner'))) {
    echo 'active';
}
?>"><span>home</span></a>


meinst du es so?

edit: boah bin ich lahm >.<
Meine Woltlab-Plugins
- Tooltip
- LiveChat
- Ani-BBCode
- Facebook

This post has been edited 1 times, last edit by "FirePanther" (May 5th 2012, 9:46pm)


  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

5

Saturday, May 5th 2012, 9:39pm

Bei mir tut dieser scheiß Code immer die Zielenumbrüche und Einrückungen entfernen. ;)
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

Fabo

Member

  • "Fabo" is male

Posts: 696

Location: Gladbeck

Occupation: Praktikant bei Xovi GmbH

  • Send private message

6

Saturday, May 5th 2012, 9:39pm

Version 1:
Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\index.php on line 50


Version 2: Navigation wird nicht angezeigt und:
[list]Notice: Undefined variable: site in C:\xampp\htdocs\index.php on line 55

Warning: in_array() expects at least 2 parameters, 1 given in C:\xampp\htdocs\index.php on line 55[/list]
Version 3: Geht! :)


Meine Finger waren etwas schneller als mein Kopf ;) Hab meinen Beitrag bearbeitet.

  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

7

Saturday, May 5th 2012, 9:43pm

Hab Code 3 berichtigt.

Darf nicht !== "partner" heißen sondern ohne ! ;) War bei Code 3, welcher jetzt auch funzt.
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

Fabo

Member

  • "Fabo" is male

Posts: 696

Location: Gladbeck

Occupation: Praktikant bei Xovi GmbH

  • Send private message

8

Saturday, May 5th 2012, 9:44pm

Auch das habe ich der Ordnung halber behoben :D War halt schwierig in deinem Eingangspost zu erkennen, was genau du nun haben willst :D

  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

9

Saturday, May 5th 2012, 9:47pm

Yoar. :D Alle anderen sollen nur active als Klasse haben, wenn die Seite geladen wird. Das krieg ich selbst hin. :D

Aber i-wie tut bei mir der [ php ] immer dike Zeilenumbrüche entfernen.

EDIT: Ich bin doof... Der Code sorgt auch dafür, dass bei allen Seiten, die includet werden die Klasse gesetzt wird, ne? :D Aber richtiger Ansatz, habe ich mich schlecht ausgedrückt. Trotzdem danke.
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

This post has been edited 1 times, last edit by "AaronDark2" (May 5th 2012, 9:53pm)


10

Saturday, May 5th 2012, 9:50pm

woran arbeitest du eigentlich? wo genau braucht man php+html auf woltlab?
ist das ein plugin oder so?
Meine Woltlab-Plugins
- Tooltip
- LiveChat
- Ani-BBCode
- Facebook

  • "AaronDark2" is male
  • "AaronDark2" started this thread

Posts: 191

Location: home/aaron/ | Zweitwohnung: Internetz

Occupation: Schüler [go vegan - veganstart.de]

  • Send private message

11

Saturday, May 5th 2012, 9:55pm

Hat nichts mit WOltlab zu tun, bin in keinem Programmierer-Forum, also gehe ich halt hier unter Technik allgemein. :D

Edit: Ich habe den dritten Code jetzt so gändert, dass er so funzt, wie ich es brauche:

PHP Source code

1
<a href="index.php" class="<?php if ($_GET['site'] == "fuhrpark" || $_GET['site'] == "biodiesel" || $_GET['site'] == "impressum" || $_GET['site'] == "partner") { echo ""; } else { echo "active"; } ?>"><span>home</span></a>
Es grüßt,
Aaron Klewer

Zitat von »Isaac Singer«

‎"In dem Umgang mit Tieren, sind alle Menschen Nazis"
go vegan - love animals - veganstart.de

This post has been edited 1 times, last edit by "AaronDark2" (May 5th 2012, 10:10pm)


12

Friday, May 11th 2012, 1:18pm

den Code würde ich etwas kompakter halten... finde ich mal so :D

PHP Source code

1
2
3
4
5
6
7
8
<?php
$array = array(
"fuhrpark",
"biodiesel"usw.);

?>
1 
   <a href="index.php" <?php if(!in_array($_GET['site'],$array)) { echo "class=\"active\""; } ?>"><span>home</span></a>


habe ihn gerade nicht getestet, da ich hier keine Möglichkeit habe.

http://de.php.net/manual/de/function.in-array.php

Kurze Erklärung was der Gedanke war:
in_array() prüft den Inhalt von $_GET[] auf seinen Wert und ob dieser im array ($array) vorhanden ist. Wenn dieser nicht vorhanden ist, ( if(!... ) wird class="active" gesetzt, ansonsten eben nicht.

Vorteil, wenn man ein array nutzt wäre, dass du hier nun nur einen Wert zum Array hinzufügen musst und nicht mehr:

PHP Source code

1
 || $_GET['site'] == "Wert" 


Greetz

13

Friday, May 11th 2012, 1:23pm

Was ist der unterschied zu meinem Code, bis auf, dass meines noch kompakter ist und nicht negiert ist.
Noch kompakter:
<?= !in_array($_GET['site'],$array) ? 'active' : '' ?>

(oder <?php=, wenn es keine short open tags gibt)
Meine Woltlab-Plugins
- Tooltip
- LiveChat
- Ani-BBCode
- Facebook

14

Friday, May 11th 2012, 1:37pm

öhm... überlesen, sorry :D

und meiner hätte den vorteil, dass er das ganze mehrfach machen kann :p aber ernsthaft, hab deinen beitrag wirklich überlesen... sorry!