Ergebnis 1 bis 7 von 7
  1. #1
    Spaulding ist offline Grünschnabel
    registriert
    26-03-2015
    Beiträge
    4

    PHP Session Variable in Javascript nutzen

    Hallo zusammen,

    ich hoffe ich bin mit meiner Frage im richtigen Forum. Die Suchfunktion hat mir bei meinem Problem leider nichts geholfen.

    Es geht um folgendes:
    Mit PHP messe durch Microtime die Zeit eines Start- und eines Endpunkts. Diese werden beim Drücken eines entsprechenden Buttons gespeichert. Beim Ende werden diese zusammengerechnet und in der Session Variable "result" gespeichert, sodass ich die Zeit des "Spiels" in Millisekunden des jeweiligen Nutzer herausfinde. Dann wird per Javascript eine Fancybox aufgerufen, wo mit Text das erfolgreiche Ende des "Spiels" angekündigt wird. Hierbei soll auch die Session Variable "result" angezeigt werden. Die Nutzer sollen ja sehen, wie schnell sie waren.

    Mein Javascript-Teil:
    Code:
    function success() {
    var result='<?php echo $_SESSION["result"];?>';
    var text_header = '<div id="exit"><p class="message success" id="success">Ihre Daten wurden übermittelt.</p>';
    var text_text = '<p>Vielen Dank für Ihre Teilnahme. Weiterer Text....<input type="submit" name="exit" class="button" value="Weiter zur Homepage"></p></div>';
    
    	jQuery(document).ready(function() {
    		$.fancybox(
    			
    			text_header + result+text_text,
    			{
        			'autoDimensions'	: false,
    				'width'         	: 350,
    				'height'        	: 'auto',
    				'transitionIn'		: 'none',
    				'transitionOut'		: 'none'
    			}
    		);
    	});
    }

    Der PHP-Teil:
    PHP-Code:
    if(isset($_POST["end"])) {
        if (!
    $newpart=fopen("results.csv","a")) {
           echo 
    "<script type='text/javascript'>
                  document.getElementById('errorRights').style.display = 'block';
            </script>"
    ;
           }
           
           else {
               
    $_SESSION["timestamp_end"] = date("d.m.Y - H:i:s");
            
    $_SESSION["end"] = microtime(true)*1000;
               
    $_SESSION["result"] = round($_SESSION["end"]-$_SESSION["start"]);
               
    fputs($newpart,utf8_decode($_SESSION["address"]).";".utf8_decode($_SESSION["fullname"]).";".utf8_decode($_SESSION["email"]).";".utf8_decode($_SESSION["firm"]).";".utf8_decode($_SESSION["street"]).";".utf8_decode($_SESSION["city"]).";"."START-ZEIT:".";".utf8_decode($_SESSION["start"]).";"."END-ZEIT:".";".utf8_decode($_SESSION["end"]).";".$_SESSION["timestamp_start"].";".$_SESSION["timestamp_end"].";".$_SESSION["result"].";\n");
                echo 
    '<script type="text/javascript">
                      success();
                  
                      </script>'
    ;
            
    fclose($newpart);
           }

    Das Problem hierbei: Schon beim Aufrufen der Seite erhalte ich den Fehler "SyntaxError: unterminated string literal" aus. Beim Klick auf den Button "Spiel beenden (name="end") sagt mir Javascript die Funktion success() wäre nicht definiert. Klicke ich nochmal auf den Button funktioniert alles tadellos.

    Ich persönlich nehme an, dass die Funktion aufgerufen wird, bevor PHP die Session Variable "result" beschreiben kann. Die Unindexierte Variable kann Javascript nicht lesen und gibt mit den Error Unterminated String literal aus. Aber ich bin mir nicht sicher. Ich habe bisher keine Lösung finden können. Vielleicht hat einer von euch eine Idee?

    Ich hoffe ich habe mich verständlich ausgedrückt. Wenn etwas nicht klar sein soll und etwas noch fehlt, bitte Bescheid sagen :-)


    Vielen Dank schonmal im Vorraus!
    Geändert von Spaulding (26-03-2015 um 08:08 Uhr)

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.799

    AW: PHP Session Variable in Javascript nutzen

    Zeig doch mal den kompletten JS Quellcode so wie er im Browser ankommt.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  3. #3
    Spaulding ist offline Grünschnabel
    registriert
    26-03-2015
    Beiträge
    4

    AW: PHP Session Variable in Javascript nutzen

    Hallo,

    was meinst du mit "wie er im Browser ankommt"?
    Alles was ich an JS nutze, habe ich oben gepostet. Worüber findet ich raus, was im Browser ankommt? Es werden mir ja lediglich Fehlermeldungen produziert..

    EDIT:
    Oder meinst du das:

    Code:
    <script type = 'text/javascript'>
    
    function success() {
    	var result='<br />
    <b>Notice</b>:  Undefined index: result in <b>/Applications/XAMPP/xamppfiles/htdocs/Osteraktion/StartFeature.php</b> on line <b>191</b><br />
    ';
    	var text_header = '<div id="exit"><p class="message success" id="success">Ihre Daten wurden übermittelt.</p>';
    	var text_text = '<p><form method="post"><input type="submit" class="button" value="Ciao" name="bye"></form>Vielen Dank für Ihre Teilnahme. Ihre Meinung hilft uns, unsere Leistungen und unsere Produkte weiter zu verbessern. Das von Ihnen gewünschte Präsent wird Ihnen mit Abschluss unserer Kundenbefragung Ende Februar zugesandt.<br><br><a href="http://www.arago-consulting.de"><input type="submit" name="exit" class="button" value="Weiter zur arago Consulting Homepage"></a></p><p class="exit-social"><a href="http://www.arago-consulting.de" target="_blank">ÜBER UNS</a></p><p class="exit-social"><a href="http://www.facebook.com/aragoGmbH" target="_blank"><img src="00_gfx/assets/facebook.png" style="height:20px;" alt="facebook"/></a></p><p class="exit-social"><a href="http://www.twitter.com/arago_GmbH" target="_blank"><img src="00_gfx/assets/twitter.png" style="height:20px;" alt="twitter"/></a></p><p class="exit-social"><a href="https://plus.google.com/+Arago-ConsultingDe/posts" target="_blank"><img src="00_gfx/assets/gplus.png" alt="Google+" style="height:20px;"/></a></p><p class="exit-social"><a href="http://www.wissens-wert.net" target="_blank"><img src="00_gfx/assets/wissens-wert.png" alt="Wissens-Wert" style="height:20px;"/></a></p></div>';
    
    	jQuery(document).ready(function() {
    		$.fancybox(
    			
    			text_header + result+text_text,
    			{
        			'autoDimensions'	: false,
    				'width'         	: 350,
    				'height'        	: 'auto',
    				'transitionIn'		: 'none',
    				'transitionOut'		: 'none'
    			}
    		);
    	});
    }
    
    
    
    </script>
    Geändert von Spaulding (26-03-2015 um 07:39 Uhr)

  4. #4
    Spaulding ist offline Grünschnabel
    registriert
    26-03-2015
    Beiträge
    4

    AW: PHP Session Variable in Javascript nutzen

    Meinst du das hier:

    Code:
    <script type = 'text/javascript'>
    
    function success() {
    	var result='<br />
    <b>Notice</b>:  Undefined index: result in <b>/Applications/XAMPP/xamppfiles/htdocs/Osteraktion/StartFeature.php</b> on line <b>191</b><br />
    ';
    	var text_header = '<div id="exit"><p class="message success" id="success">Ihre Daten wurden übermittelt.</p>';
    	var text_text = '<p>Vielen Dank für Ihre Teilnahme. <input type="submit" name="exit" class="button" value="Weiter zur Homepage"></a></p></div>';
    
    	jQuery(document).ready(function() {
    		$.fancybox(
    			
    			text_header + result+text_text,
    			{
        			'autoDimensions'	: false,
    				'width'         	: 350,
    				'height'        	: 'auto',
    				'transitionIn'		: 'none',
    				'transitionOut'		: 'none'
    			}
    		);
    	});
    }
    
    
    
    </script>
    (Sollte ich jetzt doppelt post, tuts mir leid: Meine eben geschriebene Antwort wird mir nicht angezeigt, obwohl im Forum 2 Antworten steht)

    EDIT:
    Wie ich mir dachte: Da steht der undefined Index. Aber eigentlich wird beim Button ja die Seite neugeladen und PHP beschreibt die Variable auch. Doch wie mach ich, dass Javascript die Variable in der richtigen Reihenfolge beschreibt?
    Geändert von Spaulding (26-03-2015 um 08:08 Uhr)

  5. #5
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.799

    AW: PHP Session Variable in Javascript nutzen

    Jetzt musst duch erstmal schauen, welche Zeit genau genommen werden soll. Zwischen Button und Scriptstart auf dem Server liegen ja etliche Millesekunden.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.751

    AW: PHP Session Variable in Javascript nutzen

    Mich beschleicht das Gefühl, dass dir der Unterschied zwischen cleintseitiger und serverseitiger Programmierung nicht ganz klar ist. Mach' dir klar, dass PHP nur auf dem Server ausgeführt wird, dort das HTML (ja, das JS ist Teil des HTMLs) als String erzeugt und dieses an den Browser schickt.
    Der Browser parst dann das HTML und führt das eingebettete JS aus, sieht aber nichts vom PHP.

  7. #7
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.303

    AW: PHP Session Variable in Javascript nutzen

    Hm, PHP schreibt den Fehler doch direkt rein: "Undefined index: result". Ein klarer Fall von fehlender Fehlerbehandlung.

Ähnliche Themen

  1. JS Variable für SQL (PHP) nutzen
    Von EMG im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 24-03-2015, 15:49
  2. Objektname aus Variable nutzen?
    Von Der_Jo im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 29-09-2009, 17:26
  3. PHP - Problem mit Captcha/Session-Variable
    Von colonelc im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 09-09-2008, 11:32
  4. SESSION-Variable ist gesetzt, aber leer
    Von schwerminator im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 26-11-2006, 20:59
  5. Session-Variable gezielt füllen und löschen
    Von Mannix im Forum Serverseitige Programmierung
    Antworten: 34
    Letzter Beitrag: 05-07-2006, 14:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •