kostenloser Webspace werbefrei: lima-city


PHP in JavaScript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    velima

    Kostenloser Webspace von velima

    velima hat kostenlosen Webspace.

    `Hallo liebe Community,

    ist es irgendwie möglich, php code innerhalb eines javascripts auszuführen?

    Konkret geht es mir um den Newsticker unten auf dieser seite:
    http://mintlink.de.vu/

    Ich hatte vor, die Texte aus einer Datenbank abzurufen. Nur weiß ich nicht so recht, wie ich da ran komme.
    Ich hab mal ganz blöd versucht, es einfach so zu stricken:

    var texte = new Array(
    '<?php ....... ?>',
    '<?php ....... ?>',
    '<?php ....... ?>'
    );

    nur tut das nichts. kann man vielleicht nur durch js die datenbank abfragen? oder wie kann ich das machen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. google ist dein freund =)
    die erste seite wenn man "php in javascript" eingibt ist --->

    http://www.drweb.de/magazin/javascript-und-php-ungleiche-gesellen/

    da steht alles beschrieben ;)

    EDIT

    hier ist auch nen ansatz

    http://forum.chip.de/php-mysql-etc/php-objekte-javascript-benutzen-266671.html

    Beitrag zuletzt geändert: 19.8.2010 18:42:58 von lordcodex
  4. PHP -> Webserver
    JS -> Browser

    Stichwort: AJAX

    Du musst einfach ein PHP Script erstellen das die Teile aus der DB ausliest. Mit JS fragst du das dann ab (Klick event oder z.B. alle 1 min).

    Suche einfach nach AJAX bei Google, da findest du alle Tutorials.
  5. Funktioniert problemlos, so lange der Server PHP unterstützt. Hier hast du 2 Möglichkeiten:

    1. Das JS in die PHP Seite integrieren
    2. Eine .php Datei an Stelle einer .js erstellen und dort den Header setzen:

    header("Content-type: application/x-javascript");


    Beispiel (1):

    <?PHP
    $foo = "bar";
    ?>
    <html>
    	<head>
    		<title>XYZ</title>
    		<script>
    			document.getElementById('test').innerHTML = "<?PHP=$foo?>";
    		</script>
    	</head>
    	<body>
    		<span id="test"></span>
    	</body>
    </html>


    Beispiel (2, index.php):

    <html>
    	<head>
    		<title>XYZ</title>
    		<script type="text/javascript" src="test.php?c=<?PHP=time()?>"></script>
    	</head>
    	<body>
    		<span id="test"></span>
    	</body>
    </html>


    Beispiel (2, test.php):

    <?PHP
    header("Content-type: application/x-javascript");
    
    $foo = "bar";
    ?>
    document.getElementById('test').innerHTML = "<?PHP=$foo?>";


    Beitrag zuletzt geändert: 19.8.2010 21:34:47 von fabo
  6. abarbeitungsreihenfolge der Scripte:

    1.PHP/CGI
    da drin kommt meist ein SQL aufruf, oder perl oder bash-Script


    damit wird das fertige auszuliefernde Dokument fertiggestellt

    dann an den Client geschickt

    hier wird das HTML angezeigt
    und erst jetzt kommt da JavaScript...


    also du kannst mit PHP auf keine Java-Script inhalte zugreifen, wenn du das meinst, aber du kannst über Java-Script auf PHP-Ergebnisse zugreifen^^
  7. aklasse schrieb:
    Stichwort: AJAX


    mhhh. da auf ajax zurückzugreifen halte ich ein bisschen für übertrieben, da für manche das Konzept dann doch etwas zu kompliziert ist.
    Das es mit Ajax funktioniert ist dabei natürlich unbestritten...
    Wenn es Dir ausreicht das nur beim (neu-)laden der Datei der Aktuelle Text aus der Datenbank ausgelesen wird schreibe folgendes in den Header:

    <script type="text/javascript">
    <?php 
    //Hier steht Dein Code um die Datenbank auszulesen
    //ich gehen jetzt davon aus Du  hast die Daten in einem Php array $deinphparra gespeichert
    echo "einarray = ['".implode("','", $deinphparra);."'];";
    ?>
    </script>

    Code ungetestet

    Ich denke dieser Threat zum Thema Daten aus der db in einem Array speichern dürfte für Dich interessant sein.
    Beachte das ich bewusst kein "var" vor das array geschrieben habe, dadruch sollte es auch in funktionen aufzurufen sein.

    variabeln mit "var" deklarieren = nur lokal verfügbar

    zB. alert(einarray[0]); sollte jetzt den ersten Eintrag aus der db liefern (bzw aus dem array)

    AJAX würde den Text sofort anzeigen ohne das die Seite neu geladen wird.

    Edit:
    weil ich es noch nicht kenne:

    fabo schrieb:
    <?PHP=$foo?>";

    Ist das eine verkürzte schreibweise für <?php echo $foo; ?> ?

    Beitrag zuletzt geändert: 19.8.2010 19:27:54 von simuliertes
  8. Du könntest auch einfach ein PHP Script schreiben das die Daten aus der DB ausliest und daraus das JS erstellt. Also dynamisch generierstes JS. Damit ist es zwar nciht Live und aktualisiert sich nur bei jedem aufruf, aber das sollte für den anwendungszweck reichen.

    DB kann so aussehen: ID + zitat
    Dein JS "ticker.js" musst du einfach umbenennen in "ticker.php" und dann folgenden Teil verändern:
    Also zuerst die Sachen aus der DB auslesen (mysqli_query) - Das schaffst du selbst! (select zitate from dbname)


    var texte = new Array(
    <?php
     while ($texte = mysqli_fetch_array($query)) {
    echo "\'$texte['zitat']\',\n";
    }
    ?>
      );


    Du musst dich wahrschienlich noch damit herumschlagen das php die < des JS nicht als Syntaxfehler interpretiert, aber das wars eigentlich schon...

    Beitrag zuletzt geändert: 19.8.2010 20:19:32 von aklasse
  9. aklasse schrieb:
    var texte = new Array(
    <?php
     while ($texte = mysqli_fetch_array($query)) {
    echo "\'$texte['zitat']\',\n";
    }
    ?>
      );



    Sorry aklasse aber dat wird so nicht ganz funktionieren.

    1) das Array wird fehlerhaft sein weil am ende ein komma zu viel ist
    2)header("Content-type: application/x-javascript"); muss an den Anfang
    3)Javascript Dateien werden bei einigen browsern aus der Cache geladen, d.h. der Verweis auf die js-Datei muss jedesmal anders sein z.B indem man an die url Datum+Uhrzeit als GET-anfrage anhängt (=der Browser denkt es ist eine neue Datei und läd sie nicht aus der Cache)

    Edit:
    4)falscher Syntax:
    echo "\'$texte['zitat']\',\n";

    richtig wäre:
    echo "\'".$texte['zitat']."\',\n";


    Fühl dich bitte nicht ans Bein gepinkelt :angel:

    Beitrag zuletzt geändert: 19.8.2010 20:37:40 von simuliertes
  10. simuliertes schrieb:
    ...

    Edit:
    weil ich es noch nicht kenne:

    fabo schrieb:
    <?PHP=$foo?>";

    Ist das eine verkürzte schreibweise für <?php echo $foo; ?> ?


    jau das ist es, funktioniert aber seltsamerweise nicht immer, zumindest bei mir nicht immer.
    (hab 2 rechner mit 2 xampp-installationen, bei einer - der älteren - gehts, bei der anderen nicht... )

    b2t: was eben schon häufiger genannt wurde: du kannst zwar in einer *.js-datei kein PHP verwenden, aber in einer *.php-datei JS^^
  11. t-li schrieb:
    simuliertes schrieb:
    ...

    Edit:
    weil ich es noch nicht kenne:

    fabo schrieb:
    <?PHP=$foo?>";

    Ist das eine verkürzte schreibweise für <?php echo $foo; ?> ?


    jau das ist es, funktioniert aber seltsamerweise nicht immer, zumindest bei mir nicht immer.
    (hab 2 rechner mit 2 xampp-installationen, bei einer - der älteren - gehts, bei der anderen nicht... )

    b2t: was eben schon häufiger genannt wurde: du kannst zwar in einer *.js-datei kein PHP verwenden, aber in einer *.php-datei JS^^


    Zumindest die neueren Versionen von Xampp unterstützen Shorttags nicht auf Anhieb. so funktioniert bei mir z.B. <?PHP=$foo?> aber nicht <?=$foo?>
  12. simuliertes schrieb:
    aklasse schrieb:

    2)header("Content-type: application/x-javascript"); muss an den Anfang



    Das ist dem Browser meiner Erfahrung sowas von egal... xD

    Damit du aber auch Netsacpe 4.0 unterstützt solltest du es auf jeden Fall einbauen! :biggrin:

    SRY für den Syntax Mist mit dem Mysql array... naja, php ist so unsauber da versucht man mal das eine und andere... ;D
  13. aklasse schrieb:
    PHP -> Webserver
    JS -> Browser

    Stichwort: AJAX

    Du musst einfach ein PHP Script erstellen das die Teile aus der DB ausliest. Mit JS fragst du das dann ab (Klick event oder z.B. alle 1 min).

    Suche einfach nach AJAX bei Google, da findest du alle Tutorials.



    Kann dir empfehlen, einfach mal jQuery auszuprobieren. Dann brauchst du dich nicht extra in AJAX einzuarbeiten. Außerdem spart es einiges an Tipparbeit und es lassen sich noch eine ganze Menge andere Dinge damit anstellen. Das Script kannst du vom Googleserver verlinken.
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!