kostenloser Webspace werbefrei: lima-city


Funktion soll Daten gleich übertragen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    ich möchte, wenn eine bestimmte Funktion aufgerufen wird, 2 Variablen automatisch an eine neue
    Seite (php) übergeben um diese dort dann in eine DB zu speichern.

    var GameOver = function(){
    		state = false;
    		clearTimeout(gLoop);
    		setTimeout(function(){
    			clear();
    			ctx.fillStyle = "Black";
    			ctx.font = "10pt Arial";
    			ctx.fillText("Spiel vorbei.", width / 2 - 60, height / 2 - 100);
    			ctx.fillText("Dein Ergebniss: " + points + " Punkte", width / 2 - 60, height / 2 - 80);
    			ctx.fillText("Name: " + username, width / 2 - 60, height / 2 - 60);
    		}, 100);
    	};


    Die Variablen
    username
    und
    points
    möchte ich beim ausführen der Funktion
    direkt weitergeben. Gibt es eine Möglichkeit das so umzusetzen? Ich stehe auf dem Schlauch und komme auf keinen grünen Zweig.

    Danke schon mal und nen schönes WE euch
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. h**s

    wenn die variablen beim server (php) ankommen sollen wirst du nicht um eine ajax-methode herumkommen...

    mit jquery ginge das zb. einfach so:
    $.ajax({
    		type: "POST",  
    		url: "zieldatei.php",  
    		data: { 'username':username, 'points':points }
    	});

    das kommt dann (hoffentlich) auf dem server in der datei zieldatei.php an und bringt die beiden $_POST variablen mit.

    ...aber bedenke das ein böser user browserseitige scripte immer faken könnte...
  4. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    dank für die Antwort, ich habe es damit jetzt mal Probiert. Allerdings ist mein gröstes Problem das ich nicht weiß an welcher Stelle ich mit dem Code nun ansetzen soll. Kann ich das direkt in die Funktion mit übernehmen?

    Probiert habe ich es natürlich. :-D ging aber leider nicht.

    Wenn ich es so einfüge:
    var GameOver = function(){
    		
    		state = false;
    		clearTimeout(gLoop);
    		setTimeout(function(){
    			clear();
    			ctx.fillStyle = "Black";
    			ctx.font = "10pt Arial";
    			ctx.fillText("Spiel vorbei.", width / 2 - 60, height / 2 - 100);
    			ctx.fillText("Dein Ergebniss: " + points + " Punkte", width / 2 - 60, height / 2 - 80);
    			ctx.fillText("Name: " + username, width / 2 - 60, height / 2 - 60);
    			
    $.ajax({
    		type: "POST",  
    		url: "http://www.pennereck.de/admin/jump_scorre.php",  
    		data: { 'username':username, 'points':points }
    	});
    
    		}, 100);
    		
    	};


    Dann wird die Funktion GameOver ausgeführt und auch angezeigt, allerdings werden die Daten nicht übergeben. Wenn der Ansatz so richtig ist, kann ich irgendwie eine Fehlermeldung ausgeben oder anders prüfen ob der Code ausgeführt wird?

    Auf PHP Seite übernehme ich die Daten dann so:
    $username = mysql_real_escape_string($_POST['username'], $dbverbindung);
    $points = mysql_real_escape_string($_POST['points'], $dbverbindung);


    dann das übliche INSERT INTO ....
    Die PHP Datei trägt die Daten auf jeden Fall richtig ein, das habe ich getestet, auf der Seite passt also alles.

    Gruß Marco
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aff3m1tw4ff3 schrieb:
    Wenn der Ansatz so richtig ist, kann ich irgendwie eine Fehlermeldung ausgeben oder anders prüfen ob der Code ausgeführt wird?
    Der Code sieht richtig aus, kann aber nur dann funktionieren, wenn du jQuery eingebunden hast.

    Wenn du Fehlermeldungen brauchst kannst du im Chrome auf F12 drücken und den »Console«-Tab auswählen, im Firefox musst du dazu erst »FireBug« installieren.
    Am »Network«-Tab siehst du dann auch wenn deine Funktion Daten an den Server schickt…
  6. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Oh man, ich hatte jQuery nicht eingebunden. Nun kommen auch Daten auf der anderen Seite an.
    Dafür schon mal ein rießen DANKE an euch beide.

    Leider habe ich nun noch ein Problem bekommen, die Daten werden doppelt gespeichert.
    Das GameOver wird aber nur einmal ausgeführt wenn ich das richtig sehe.

    // hier wird GameOver aufgerufen im else
    	that.checkFall = function(){
    		if (that.Y < height - that.height) {
    			that.setPosition(that.X, that.Y + that.fallSpeed);
    			that.fallSpeed++;
    		} else {
    			if (points == 0) 
    				that.fallStop();
    			else 
    				GameOver();
    		}
    	}
    
    
    
    // so sieht GameOver aktuell aus
    	var GameOver = function(){
    		
    		state = false;
    		clearTimeout(gLoop);
    		setTimeout(function(){
    			clear();
    			ctx.fillStyle = "Black";
    			ctx.font = "10pt Arial";
    			ctx.fillText("Spiel vorbei.", width / 2 - 60, height / 2 - 100);
    			ctx.fillText("Dein Ergebniss: " + points + " Punkte", width / 2 - 60, height / 2 - 80);
    			ctx.fillText("Name: " + username, width / 2 - 60, height / 2 - 60);
    			
    $.ajax({
    		type: "POST",  
    		url: "http://www.pennereck.de/admin/jump_scorre.php",  
    		data: { 'username':username, 'points':points }
    		
    	});
    
    		}, 100);
    		
    	};


    Auf PHP Seite sieht es so aus:

    $username = mysql_real_escape_string($_POST['username']);
    $points = mysql_real_escape_string($_POST['points']);
    
    /* kScorre eintragen*/
    $query = "
      INSERT INTO
        `$tabelle`
        (username, points)
      VALUES
        ('$username', '$points')
      ON DUPLICATE KEY UPDATE username = '$username', points = '$points'";
      
    mysql_query($query, $dbverbindung) or die(mysql_error());



    Damit kommen dann am Ende 2 gleiche Einträge in der DB an. :eek:

    Gruß Marco

    TANTE EDIT:

    Hat sich erledigt, hab das query versehentlich ein 2tes mal in einer Prüfung aufgerufen. darum der doppelte Eintrag.

    Danke noch mal für eure Hilfe


    Beitrag zuletzt geändert: 8.3.2013 18:55:20 von aff3m1tw4ff3
  7. 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!