Variable per Klick ändern

subOptimal02

Ensign
Registriert
Dez. 2009
Beiträge
206
Hallo liebe CB-User,
nachdem ich mich ein wenig mit HTML und PHP beschäftigt habe, bekam ich heute ein Problem. Ich hoffe, dass es dieses Thema noch nicht gab, weil ich keines gefunden habe, zumindestens keine brauchbaren:D
Unzwar würde ich gerne wissen, wie ich eine Variable mit einem Klick auf ein Bild ändern kann.

Also,
x = 0
wenn bild klick
x = 1

Würde mich über Antworten freuen.

Mit freundlichen Grüßen
 
Zuletzt bearbeitet:
Mittels PHP nur, wenn du die Seite neu lädst und bspw. über einen Link auf dem Bild diese neue Variable übergibst:

Link mit Variable:
HTML:
<a href="www.adresse.de/seite.php?x=1"><img src="dein_bild.jpg"></a>

Und dann auf seite.php die Variable aus der URL auslesen:
PHP:
$x = $_GET['x'];

Wenn du die Variable direkt ändern willst, ohne die Seite neu zu laden, musst du Javascript benutzen.



P.S. es heißt und zwar, nicht unzwar
 
Zuletzt bearbeitet:
Danke für deine schnelle Antwort.:)

Solange es nicht sehr kompliziert ist, würde ich auch Java Script nehmen, will ja auch verstehen was ich da schreibe:D

Könntest du mir das zeigen?

Gruß
 
Zuletzt bearbeitet:
Naja ich würde einfach mal sagen: Es hängt davon ab, wie die Variable genutzt wird, wie es gelöst werden soll.

Du entscheidest dich hier einfach mal für JavaScript, aber die Antwort von Mr. Snoot ist im Grunde so wenig hilfreich wie meine, weil dir einfach Wissen fehlt, um die Frage so zu stellen, dass man dir helfen kann.

Du hast ein Problem A. Keine Ahnung wie das aussieht. Die Lösung für Problem A ist Lösung A. Lösung A heißt "Variable ändern".
Jetzt entsteht das Problem B: "Wie ändere ich diese Variable denn?". Jetzt suchst du Lösung B.

Aber die Lösung von B hängt nun mal vom Problem A ab. Das solltest du nennen, damit man dir wirklich helfen kann.

(Ich finde es immer lustig, dass man dieses Verhalten sooo oft sieht. Leute fixieren sich auf eine Lösung eines Problems, das aber eigentlich nur einen Nebenskriegsschauplatz besteht)
 
Zuletzt bearbeitet:
Das ganze macht eigentlich nur Sinn wenn du sagen kannst, was du genau machen willst; wofür du die Variable benötigst.

Vielleicht ist JS für dein weiteres Vorhaben ja gar nicht geeignet.
 
Du hast ein Problem A. Keine Ahnung wie das aussieht. Die Lösung für Problem A ist Lösung A. Lösung A heißt "Variable ändern".
Jetzt entsteht das Problem B: "Wie ändere ich diese Variable denn?". Jetzt suchst du Lösung B.

So habe ich das noch gar nicht gesehen.;)

Ich habe ein weg gesucht, um meine Seite so einfach wie nur möglich zu gestalten.
Dazu gehört für mich als aller erstes, dass die Texte leicht editierbar sind. CMS und Datenbanken waren mir zu umständlich, da ich ja so oft auch nichts ändern muss.
Also habe ich mich dazu entschlossen mit die Texte in einem seperaten File zu speichern.
Code:
<?php
echo nl2br(file_get_contents('textdatei.txt'));
?>

Damit die eigentliche Website aber nun auch einfacher wird, dachte ich mir, ich mache nicht für jede Seite ein neues php-file, sondern lade einfach auch Knopfdruck (bei mir Bilder) einen neuen Text von einer anderen Textdatei. Daher die Variable. Ich bin z.B. auf Seite 1 ($seite = 1) klicke auf Seite 2 ($seite = 2).

Dann mit:
Code:
  <?php
  switch($seite)
  {
    case ("1"):
    echo nl2br(file_get_contents('seite1.txt'));
    break;

    case ("2"):
    echo nl2br(file_get_contents('seite2.txt'));
    break;
  }
  ?>


Dadurch hätte ich dann nur ein php-file und kann alles ändern, ohne andere Seiten auch zu ändern. Zusätzlich könnte man mit Hilfe der Variablen auch die Sprache einstellen.

Aber vielleicht ist das alles ja auch schwachsinnig:D
 
Jo, dann mach das wie oben mit PHP beschrieben.

HTML:
<a href="datei.php?seite=1">Seite1</a>
<a href="datei.php?seite=2">Seite2</a>

PHP:
<?php

  $seite = $_GET['seite'];

  switch($seite)
  {
    case 1: 
    ..
  }

?>

Oder einfacher, wenn du als Variable gleich den Namen der Seite übergibst:

HTML:
<a href="datei.php?seite=plopp">Seite1</a>
<a href="datei.php?seite=blabla">Seite2</a>

PHP:
<?php

  $seite = $_GET['seite'];

  echo nl2br(file_get_contents($seite . '.txt')); // ruft plopp.txt oder blabla.txt auf

?>

Du kannst eine Datei aber auch mit include("datei.php"); einbinden; in der Datei kann sich auch HTML- oder PHP-Code befinden.

PHP:
<?php

  $datei = $_GET['seite'];

  include($datei . '.php');

?>
 
Zuletzt bearbeitet:
Danke
kannst du mir das erläutern wie das mit mit
Code:
<a href="datei.php?seite=plopp">Seite1</a>
<a href="datei.php?seite=blabla">Seite2</a>
geht?

also index.php ist klar aber was hat der Rest dahinter zu tun?
 
Okay, habs hinbekommen.
Danke für (schnelle) eure Hilfe. Wenn ich noch fragen, weiß ich an wen ich mich wende.

Noch zwei sachen: Wie kann ich die .txt in einen ordner schieben?
Code:
  echo nl2br(file_get_contents[COLOR="Red"]($seite . '.txt')[/COLOR]);

Wo füge ich das da rein?

Und wie mache ich das mit einer andern Sprache, weil ich ja dann nichts mehr ranhängen kann?
 
Zuletzt bearbeitet:
Die Datei soll in einem anderen Ordner liegen? Dann musst du den entsprechenden Pfad angeben:

PHP:
echo nl2br(file_get_contents('ordner/' . $seite . '.txt'));
// bzw. mit './ordner/' oder '../ordner/' usw. in höhere Verzeichnisebenen wechseln


Und was meinst du mit Sprache? Variablen kannst du natürlich (mehr oder weniger) so viele per Link übergeben, wie du willst:

HTML:
<a href="datei.php?seite=plopp&sprache=de&irgendwas=nix">Seite1</a>
<!-- ersten Parameter mit ? anhängen, jeden weiteren mit & -->
PHP:
$seite     = $_GET['seite']; // liefert 'plopp'
$sprache   = $_GET['sprache']; // liefert 'de'
$irgendwas = $_GET['irgendwas']; // liefert 'nix'
 
Mhhh...
ich will ja die Sprache dauerhaft umstellen und die Bilder (Buttons) müssen ja dann auch geändert werden.

Von der Navi Leiste bekomme ich die $seite gesagt. Wenn ich auf english klicke sollten dann englische Texte kommen und die Buttons sollten sich ändern. Standard soll deutsch sein. Außerdem wird der Code ja von oben nach unten abgearbeitet. Wenn ich nach der Navi weißt, welche Textdatei ich öffnen muss, kann ich z.B. nicht mehr den Button ändern, den ich gerade angeklickt habe, da er das ja schon abgearbeitet hat. Gibt es da irgendeine spring Möglichkeit oder irgendwelche anderen Tricks?

Kompliziert;)

Kann ich das so machen, weil beim Aufruf ja noch nichts angeklickt wurde?
Code:
<?php

  if($page == 0) //da nicht vorhanden
  {
   echo nl2br(file_get_contents('content/1.0.txt'));
  }

  else
  {
  $page = $_GET['page'];
  echo nl2br(file_get_contents('content/' . $page . '.txt'));
  }
?>
 
Zuletzt bearbeitet:
Ich würd's andersrum machen, d.h. auf englisch prüfen, ansonsten deutsch.

PHP:
if($_GET['page'] == "englisch")
{
  $sprache = "en";
  // englische Ausgabe
}
else
{
  $sprache = "de";
  // deutsche Ausgabe
}

So fragst du "ist die Variable == englisch? --> englische Ausgabe". Das ist eindeutig und alles andere führt zur Ausgabe in Deutsch. Ist mir persönlich lieber als auf "nichts" zu prüfen.


Diese Abfrage setzt du ganz oben in den Code und kannst alles, was danach kommt, entsprechend der Variable $sprache in deutsch oder englisch ausgeben.

Du kannst dir ja überlegen, ob du deine Ordner/Dateinamen so anlegst, dass du direkt durch die Variable $sprache die Datei in der jeweiligen Sprache aufrufst.

PHP:
echo '<a href="plopp_' . $sprache . '.php">Plopp</a>'; // Link zu plopp_de.php oder plopp_en.php
echo '<a href="blabla_' . $sprache . '.php">Blabla</a>'; // Link zu blabla_de.php oder blabla_en.php


Ansonsten müsstest du immer erst prüfen, welche Sprache gesetzt ist:

PHP:
if($sprache == "en")
{
  echo '<a href="englisch1.php">Link 1</a>';
  echo '<a href="englisch2.php">Link 2</a>';
}
else
{
  echo '<a href="deutsch1.php">Link 1</a>';
  echo '<a href="deutsch2.php">Link 2</a>';

}
 
Zuletzt bearbeitet:
Klinkt einleuchtend:D

aber den ersten Schritt verstehe ich nicht.

PHP:
if($_GET['page'] == "englisch")
{
  $sprache = "en";
  // englische Ausgabe
}
else
{
  $sprache = "de";
  // deutsche Ausgabe
}

Die Variable 'page' sagt mir ja die Seite z.B. 1.0 , aber nicht englisch.
Wie bekomme ich da englisch rein? Habe ganz oben einen Deutsch und einen Englisch Button.
 
Zuletzt bearbeitet:
Achso, ja das sollte natürlich $_GET['sprache'] heißen, nicht 'page':

PHP:
if($_GET['sprache'] == "englisch") 
{ 
  $sprache = "en"; 
}
...

Und über deine Deutsch-/Englisch-Buttons wechselst du zwischen den Sprachen:

HTML:
<a href="seite.php?sprache=englisch">English</a>
<a href="seite.php">Deutsch</a>

<a href="seite.php?seite=1&sprache=englisch">Seite 1, English</a>
<a href="seite.php?seite=1">Seite 1, Deutsch</a>

<a href="seite.php?seite=2&sprache=englisch">Seite 2, English</a>
<a href="seite.php?seite=2">Seite 2, Deutsch</a>
 
Zuletzt bearbeitet:
Wenn man jetzt auber auf den englisch-Button klickt, ist alles englisch, wenn man dann aber auf einen Content-Button klickt, wird das ja wieder deutsch, da ja nicht immer ?sprache=englisch mitgesendet wird.

Hupps, beim schreiben hört sich das schon wieder logisch an:D:D

D.h. ich muss bei allen englischen Links &sprache=englisch ranhängen, da es ja sonst wieder deutsch wird. Korrekt?

Ich probiere es gleich mal aus. Danke

Edit: Danke, das du es nachgetragen hast.
 
Jep, den Parameter musst du immer mitübergeben; genauso, wie du ja auch die Seite immer an den Link anhängst.
 
Habe das jetzt so versucht, aber leider ohne Erfolg. Ich denke mal, dass da ein ganz blöder Logik-Fehler drinnen istrolleyes:

Sprachbutton:
HTML:
<a href="?lang=de"><img src="images/de.gif" width="35" height="21" border="0" /></a>
<a href="?lang=en"><img src="images/en.gif" width="35" height="21" border="0" /></a>

Abfrage:
PHP:
<?php
  if($_GET['lang'] == "en")
  {
   $sprache = "en";

  else
  {
   $sprache = "de";
  }  
?>

Link:
HTML:
<a href="index.php?section=home&lang=$sprache"><img src="images/m1a.gif" width="97" height="41" border="0" /></a>

PHP:
<?php

  $section = $_GET['section'];
  echo nl2br(file_get_contents('content/' . $sprache . '/' . $section . '.txt'));

 ?>
 
Zuletzt bearbeitet:
Das hier geht so nicht:
HTML:
<a href="index.php?section=home&lang=$sprache">
Variablen gibts nicht in HTML; wenn du in den Quelltext schaust steht dort ja auch nur lang=$sprache und nicht etwa lang=englisch o.ä. Also übergibst du auch nur den String $sprache.

Da musst du auf PHP wechseln:

HTML:
<a href="index.php?section=home&lang=<?php echo $sprache; ?>">
oder
PHP:
<?php
echo '<a href="index.php?section=home&lang=' . $sprache . '">';
?>


edit:

und in der if-Funktion fehlt eine schließende Klammer:

PHP:
if($_GET['lang'] == "en")
{
  $sprache = "en";
} // <----------
 
Zuletzt bearbeitet:
Mimimimi.....

jetzt klappt es. Kann ich auch die Seite beibehalten und nur die Sprache ändern?
 
Zurück
Oben