• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

php-code onclick ausführen

Animal21

Neues Mitglied
Hallo Leute,
ich versuche eine Möglichkeit zu finden, meine seite Multilingual zu machen.
Das ganze soll einfach durch den click auf den jeweiigen länderbutton zu ändern sein:

...
HTML:
<input type='button' value='de' name='cmdGER' onclick="<?php $_SESSION['lang'] = ?> document.changeLang.cmdGER.value <?php ; ?>" />

<input type='button' value='eng' name='cmdENG' onclick="<?php $_SESSION['lang'] = ?> document.changeLang.cmdENG.value <?php ; ?>" />
...

leider scheint der code fehlerhaft zu sein, weis aber leider nicht wieso... die fehlermeldung sagt zwar: "Parse error: syntax error, unexpected ';' in ...", aber des Simikolon muss doch gesetzt werden!?!

mfg
ani
 
PHP-Variablen können nicht per JavaScript gesetzt werden. Du musst dazu einen neuen Request durchführen. Die neue Sprache kannst du zum Beispiel als GET-Parameter anhängen.

HTML:
<?php

if (isset($_GET['lang'])) {
    echo 'Hier Session setzen oder so';
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
    </head>

    <body>

        <form name="changeLang" method="post" action="">

        <input type='button' value='de' name='cmdGER' onclick="window.location = '?lang=' + document.changeLang.cmdGER.value;" />

        </form>

    </body>

</html>
 
stimmt danke, hat vergessen dass php in js nicht geht (zu lange nicht 'gewebmasterd' xD)

kurze frage noch zu der Multilingualität:
is es sinnvoll jeden text/überschrift/etc. in der db zu speichern und je nach einstellung zu laden, oder gibt es da eine elegantere lösung?

mfg
 
Schwierig pauschal zu beantworten. Ich denke, längere Texte sollten in einem Stück in jeder Sprache abgelegt werden. Wenn du die Felder „Titel“ und „Inhalt“ hast, würde ich die beide lokalisieren, also etwa eine zusätzliche Tabelle mit den Felder „Sprache“, „Titel“ und „Inhalt“ anlegen.

Für simple Dinge wie die Beschriftung von irgendwelchen Navigationselementen könntest du auf gettext setzen.

- PHP: Gettext - Manual
 

Neueste Beiträge

Zurück
Oben