Kerstin: Boolsche PHP Variable in Javascript nutzen

Hallo,

ich habe folgendes Problem:
Ich muss eine PHP Variable boolschen Typs in einem JS nuten.

var ok = <?php echo $ok ?>;

habe ich probiert, funktioniert aber nicht bei boolschen Var.

Habe hier und im Internet schon gesucht, aber leider nichts passendes gefunden.

Danke für die Hilfe,

Kerstin

  1. Ergänzung:

    Bei mir meldet er dann immer Syntaxfehler. ;(

  2. Hi Kerstin,

    var ok = <?php echo $ok ; ?>;

    ^^^^^^^^^^^^^^
    kann es sein, dass hier nur ein Semikolon fehlt, nach $ok ?

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. Hallo Romy,

      leider nicht, habe es ausprobiert.

      Ich habe es nun mit einer Hilfsvariablen versucht, um den boolschen Typ zu umgehen.Lasse ich den Debugger laufen, sehe ich dass diese gar nicht definiert ist.

      Ich habe die Übernahme von PHP Variable in JS schon wie folgt eingebaut:
      Nach Abschicken eines Formulars, mit einem Feld datei, kann $datei in eine JS Variable umgewandelt werden.
      Nun nutze ich in der Datei ein PHP Skript, welche die VAR $help und $ok setzt. Das nach einen Timeout von 2000 aufgerufene JS Script soll dann eine dieser VAR umwandeln. Doch diese sind dann nicht belegt. :(

      1. Hi Kerstin,

        leider nicht, habe es ausprobiert.

        wäre ja uch zu einfach gewesen ;););)

        Ich habe es nun mit einer Hilfsvariablen versucht, um den boolschen Typ zu umgehen.Lasse ich den Debugger laufen, sehe ich dass diese gar nicht definiert ist.

        inwiefern HIlfsvariable, hast Du einfach eine Variable mit 0 oder 1 belegt oder?
        <dummfrag>warum deklarierst Du überhaupt einen boolschen Typ, ich hab in meinen Dokus gar nichts darüber gefunden oder hast Du Dir den Datentyp selbst geschrieben? Ausserdem entscheidet PHP doch eigentlich selbst, welchen Datentyp es hat? ODER? </dummfrag>

        Ich habe die Übernahme von PHP Variable in JS schon wie folgt eingebaut:
        Nach Abschicken eines Formulars, mit einem Feld datei, kann $datei in eine JS Variable umgewandelt werden.
        Nun nutze ich in der Datei ein PHP Skript, welche die VAR $help und $ok setzt. Das nach einen Timeout von 2000 aufgerufene JS Script soll dann eine dieser VAR umwandeln. Doch diese sind dann nicht belegt. :(

        ehrlich gesagt, so verstehe ich nicht ganzt was Du meinst, sorry :(
        wenn Variablen plötzlich nichts enthalten, dann werden sie entweder irgendo überschrieben oder es geschieht ein reload und sie werden nicht wieder definiert
        ein bisschen erklärender Code wäre hilfreich ;)

        ciao
        romy, bei der sich die Weihnachtsfreude gar nicht richtig einstellen will :(

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        ->Alles ist gut wenn es aus Schokolade ist
        1. Hallo Romy,

          Ich habe es nun mit einer Hilfsvariablen versucht, um den boolschen Typ zu umgehen.Lasse ich den Debugger laufen, sehe ich dass diese gar nicht definiert ist.
          inwiefern HIlfsvariable, hast Du einfach eine Variable mit 0 oder 1 belegt oder?

          ja $help ist meine Hilfsvariable, initialisiert mit 0. Nur bei 1 wird etwas im Javascript gemacht.
          $help = 0;
             if (strchr($email,".")) {
                $from  = $email;
             $ok = TRUE;
             $help = 1;
             }

          <dummfrag>warum deklarierst Du überhaupt einen boolschen Typ, ich hab in meinen Dokus gar nichts darüber gefunden oder hast Du Dir den Datentyp selbst geschrieben? Ausserdem entscheidet PHP doch eigentlich selbst, welchen Datentyp es hat? ODER? </dummfrag>

          Klar, PHP sucht sich dne Typ selbst aus. Aber ich habe eine
          VAR mit TRUE initialisiert,  um nacher eine einfache if abfrage zu haben. Eigentlich reicht nun auch die $help.

          In Javascript sieht es dann so aus:
           function loadDatei(){
           var dat = <?php echo $datei; ?>;
               var down = <?php echo $help ?>;
            if (down ==1){
              if (dat == 1){
                  self.location.href= "../../../../Download/BtS/Reports/NeueBerichteDez2002.zip";
              }
          ... }

          Datei ist ein Formularfeld der vorhergehenden Datei. Das läuft auch.
          Ablauf der php Datei ist folgedner:
          Die function loadDatei wird nach 5000 milisec. ausgeführt.
          Nur $help ist dann wohl noch nicht gesetzt.

          Helfen würde hier auch ein Trick, so dass ich durch PHP die Javascriptfunktion aufrufen könnte, oder aber in PHP eine andere Seite aufrufe, so dass die Funktion nicht mehr ausgeführt wird.
          Da wenn $help = 1 funktion ausgeführt werden soll & und in PHP eine eMail abgeschickt wird und bei $help = 0 ein anderer TExt ausgegeben wird. (hier könnte auch zu einer anderen Seite gewechselt werden.)

          Ich hoffe meine Erläuterungen helfen,

          Ciao Kerstin

          1. Hi Kerstin,

            $ok = TRUE;

            hier bin ich mir nicht so sicher dass es geht, sollte nicht "True" stehen, andererseits müsste PHP den Ausdruck TRUE ja kennen ... ?

            In Javascript sieht es dann so aus:
            function loadDatei(){
            var dat = <?php echo $datei; ?>;
                 var down = <?php echo $help ?>;
              if (down ==1){
                if (dat == 1){
                    self.location.href= "../../../../Download/BtS/Reports/NeueBerichteDez2002.zip";
                }
            ... }

            $help sollte gesetzt sein, ausser Du hast indirekt einen reload drin...
            Du hast praktisch ein Formular mit $datei, dies schickst Du ab und kommst auf die Seite (kann ja diesselbe sein) wo $help gesetzt wird. Dort wird dann eine Javascriptfunktion aufgerufen, die diese Variable bekommt. So sollte es auch funktionieren...
            Vielleicht ist ja irgendwo ein Dreher drin
            Hat die Variable $help jemals den Wert 1? Funtioniert die If-Anweisung, wenn alles ja, wie lange hat diese Variable den Wert, d.h wann verliert sie ihn?
            gibt es dort eine Mögliche Überschreibung...?

            (Kann sein, dass das jetzt alles etwas einfach klingt, aber da es theoretish funktionieren sollte, muss ja irgendwo der Haken sein...ich spreche aus Erfahrung, hab mir jetzt schon 2x die Finger wundgesucht, nur weil ich irgendwo ne klitzekleinigkeit übersehen hatte und somit meine Variable weg war ;))

            Bei der anderen Lösung kann ich nicht helfen, da kenne ich mich gar nicht aus, sorry

            ciao
            romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            ->Alles ist gut wenn es aus Schokolade ist
        2. Hallo,

          habe nun eine Lösung gefunden. Wenn $help = 0, dann steht im PHP Code
           echo "<meta http-equiv="Refresh" content="0 url=$strUrl">";
          und ich werde auf eine andere Seite umgeleitet.

          Müsste nur noch ein Timer eingebaut werden, damit die Umleitung nicht sofort geschieht.

          Schönes Fest,

          Kerstin

  3. Moin!

    ich habe folgendes Problem:
    Ich muss eine PHP Variable boolschen Typs in einem JS nuten.

    var ok = <?php echo $ok ?>;

    habe ich probiert, funktioniert aber nicht bei boolschen Var.

    Schau in den generierten Quelltext, den dein PHP-Skript ausgibt. Steht dort sinnvolles Javascript? Speichere den Quelltext ab und ändere im _Javascript_ solange rum, bis das Javascript läuft, wie du willst. Ändere dann das PHP-Skript so, dass es diesen Javascript-Code generiert.

    Du hast es (was dir hoffentlich bewußt ist) mit zwei Stufen der Skriptverarbeitung zu tun: Zuerst waltet PHP und _generiert_ Javascript, und dann kommt der Browser und interpretiert das generierte Javascript. Dadurch kommt es zu der schwierigen Situation, dass man die Sprachen scheinbar mischt - so ist es aber ganz und gar nicht.

    Vom Ansehen des wenigen Quelltextes würde ich sagen, dass der Code korrekt ist - aber natürlich nur, wenn "echo $ok" wirklich einen Text "TRUE" oder "FALSE" ausgibt. Bei boolschen Variablen hätte ich da so meine Zweifel, ob PHP da wirklich "TRUE" oder "FALSE" hinschreibt.

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)