Xorks: PHP Variable an ein Layer übergeben ?

Hi leute,

hoffe das ich den richtigen Themenbereich gewählt habe. ich hab eine frage zu einem layer was eigentlich zu javascript/dhtml gehört, trotzdem hab ich mich für den bereich php entschieden :D

also meine frage:
ich habe eine php variable und möchte diese an einen javascript layer übergeben..

z.b. so:
ich habe auf meiner seite einen Briefumschlag als gif.. wenn ich nun mit der maus über diesen briefumschlag fahre, möchte ich in dem layer sehen wieviel messages ich habe.. dafür muss ich aber die variable in den layer bekommnen :)

hat einer ne idee ?

Vielen Dank schonmal
Xorks

  1. morgens,

    ich habe auf meiner seite einen Briefumschlag als gif.

    GIF ist weder ein Layer noch etwas, was mit PHP erzeugt werden muß.

    wenn ich nun mit der maus über diesen briefumschlag fahre, möchte ich in dem layer sehen wieviel messages ich habe

    Wenn du mit der Maus deinen Briefumschlag berührst, löst du möglicherweise einen EventHandler aus. Der kann - was leider häufig so gemacht wird - ein popup öffnen. Mit einem "Layer" hatr das immer noch nichts zu tun.

    dafür muss ich aber die variable in den layer bekommnen :)

    Welche Variable? Und was nutzt es dir, wenn in einem popup dann ein Text wie "$layer=irgendwas" steht?

    hat einer ne idee ?

    Mach dir ungefähr klar, was da wie abläuft, und versuche, von der Serverseite her zu denken. PHP wird auf dem Server ausgeführt. Also liegt es nahe, daß du deine gesamte auszuliefernde Seite mit PHP zusammenbauen läßt, einschließlich eventuell benötigter Javascript-Bausteine. Wenn nun sowieso PHP auf dem Server alles zusammenbastelt, ehe es überhaupt an den "user" ausgeliefert wird - was hindert dich dann, deine PHP-Variable so einzusetzen, daß ihr Wert beim Client als Bestandteil eines Javascript-Schnipsels erscheint?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hallo,

      wenn ich nun mit der maus über diesen briefumschlag fahre, möchte ich in dem layer sehen wieviel messages ich habe

      Wenn du mit der Maus deinen Briefumschlag berührst, löst du möglicherweise einen EventHandler aus. Der kann - was leider häufig so gemacht wird - ein popup öffnen. Mit einem "Layer" hatr das immer noch nichts zu tun.

      Ich könnte mir vorstellen, dass er kein Popup öffnen will, sondern per Javascript(oder nenn es meinetwegen DHTML) einen layer erzeugen will, oder auch einen bestehenden unsichtbaren layer sichtbar machen will. Und in diesem sollte dann wohl sowas wie

        
      echo "<p>Sie haben $anzahl neue mails.<p>";  
      
      

      stehen. Dazu könnte dein Tip dann sehr hilfreich sein:

      Mach dir ungefähr klar, was da wie abläuft, und versuche, von der Serverseite her zu denken. PHP wird auf dem Server ausgeführt. Also liegt es nahe, daß du deine gesamte auszuliefernde Seite mit PHP zusammenbauen läßt, einschließlich eventuell benötigter Javascript-Bausteine. Wenn nun sowieso PHP auf dem Server alles zusammenbastelt, ehe es überhaupt an den "user" ausgeliefert wird - was hindert dich dann, deine PHP-Variable so einzusetzen, daß ihr Wert beim Client als Bestandteil eines Javascript-Schnipsels erscheint?

      Ob man allerdings heute noch mit layern arbeiten sollte mag ich nicht beurteilen.

      Liebe Grüße

      mbr

      1. das einfachste und wohl auch sinnvollste wäre, diesen text als tooltip text an das control zu binden. beim überfahren mit der maus würde dieser dann angezeigt.

  2. Hallihallo!

    Ich habe, während ich mit den Möglichkeiten von PHP rumzuspielen angefangen habe, das gleiche Problem auch einmal gesehen.

    Ich bin zu folgendem Schluß gekommen:

    1. Der Browser kann, während er eine Seite anzeigt, nur das anzeigen (z.B. als "Layer" oder sonstwas), was er bereits weiss. Sprich, was ihm im Quelltext an Informationen zur Verfügung steht.

    2. Javascript läuft (normalerweise) nur im Browser ab, und hat von PHP- Variablen erstmal keine Ahnung. (Techniken wie Ajax u.Ä. einmal außen vor gelassen).

    3. Das bringt einen zu dem _Teilproblem_: Wie bekomme ich meine dem PHP- Skript bekannte Variable in den Quelltext?
         => Lösung: per <?php echo $meinevariable; ?>

    4. Wo bringe ich diese Variable unter?
         4a) in einem "Layer", der per Javascript ein- und aus- geblendet wird.
            Funktioniert wie in 3) gesagt, nur eben umgeben vom entsprechenden "Layer",
            der auch stumpf im Quelltext steht.
         4b) in der Javascript- Funktion selber, z.B. als Variablenwert.
             => function zeig_an() {
                   var anzahl = <?php echo $anzahl; ?>
         4c) im <img>- Tag selbst, z.B. im onmouseover Attribut.
             => <img src="brief.gif" alt="" onmouseover="zeig_an(<? php echo $anzahl; ?>)">
         4d) das, wofür ich mich entschieden hatte:
             <a href="postfach.php">
                <img src="brief.gif" alt="<?php echo $anzahl; ?>" title="<?php echo $anzahl; ?>">
             </a>

    Wofür Du Dich entscheidest, bleibt Dir überlassen.
    Vielleicht fällt Dir auch noch was ganz Anderes ein, Du musst nur bedenken, daß PHP auf dem Server läuft, und der Browser nur das zu Gesicht bekommt, was PHP ihm gibt.
    Und wenn der Browser den Ihnalt einer Variablen kennen soll, musst Du ihn ihm nur geben...

    Ich hoffe, ich konnte helfen.

    Viele liebe Grüße,
    Der Dicki