kostenloser Webspace werbefrei: lima-city


PHP und Javascript Variable checken/setzen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bilo

    bilo hat kostenlosen Webspace.

    Hallo,

    also ich hab hier ein Problem. Erst mal Soll-Beschreibung.
    Ich bin am einem Chat programmieren. Der Chat hat ein paar Javascript / JQuery Funktionen drin. So, in der Datenbank hab ich für die Usertabelle ein Eintrag stehen welche Nachricht sie als letztens gelesen haben.
    z. B. msg_id_last = 30. Ein Jquery funktion get lädt die get_message.php und dort wird überprüft bis welche nachricht bereits gelesen wurde. Wenn die letzte nachricht nicht gelesen wurde, dann wird mit echo die letzte auch ausgegeben. Die echo wert wird dann an Chatboxbereich angefügt.
    Jedoch finde ich das nicht so effektiv. z. B. wenn man zweimal die Seite geöffnet hätte, würde auf der eine Seite anzeigen und bei der anderen nicht mehr, da der Wert in der Datenbank bereits gesetzt wurde.

    Nun hatte ich die Idee Javascript die Arbeit machen zu lassen parallel zu Datenbank Wert. Das heißt:
    Wenn aktuelle_gelesene_message=5 kleiner als anzahl_message=7 dann zeige an/lade message.
    So nun kommt das entscheidende "und setzte javascript_variable = 7"
    und genau da komm ich nicht weiter.

    Denn der Aufbau sieht so aus:
    index.php <script src="c_handler.js"></script> hier sind die javascript funktionen
    inc/get_message.php

    Im Grunde wird in der index.php das verarbeitet.
    gibt es da spezielle Möglichkeiten oder müsste ich hier jetzt einige Dateien erstellen um eine Javascriptvariable zu verändern?


    javascript:
    function get_message() {
    	//need for fix scroll later
    	var isBottom = (($('#content')[0].scrollHeight-100)-$('#content').outerHeight()) <= $('#content').scrollTop();
    	
    	//use special form
    	//get just last posts
    	//$("#content").load("inc/get_message.php");
    
    	$.get('inc/get_message.php', function(data) {
    		$('#content').append(data);
    		MsgID = <<<<<<<HIER DAS HIER MUSS GEÄNDERT WERDE;
    	});
    	
    	//fix scroll at bottom
    	setTimeout(function() {scrollFix(isBottom)}, 100);
    }
    
    php_scritp
    if(hasNewMessage(180)) {
    	
    	updateLatestRead(180);
    
    	//old
    	//"SELECT * FROM chatbox_message WHERE id >= (select max(id)-79 from chatbox_message) ORDER BY id LIMIT 0, 80"
    	
    	$query = mysql_query("SELECT * FROM chatbox_message ORDER BY id DESC LIMIT 1");
    	while($row = mysql_fetch_assoc($query)) {
    		$id 		= $row["id"];
    		$user_id 	= $row["user_id"];
    		$msgtime 	= $row["msgtime"];
    		$message 	= fix_html_code($row["message"]);
    		$name		= $row["name"];
    		
    		$time = date("H:i", $msgtime);
    		$date = date("d.m.Y", $msgtime);
    		
    		echo "<p class=\"chatmessage\">($time - $date) <strong><span style=\"color:#FF6600\">$name</span></strong>: $message</p>";
    	}
    }

    die 180 steht für user_id. erst mal selbst definiert

    EDIT: Also leute ich hatte echt keine ahnung.. hab nun einfach ne datei mit php nem rückgabe wert gemacht. ich finde das zwar nicht so toll aber was sollst ^^

    Beitrag zuletzt geändert: 10.7.2013 13:24:04 von bilo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hm, weis nicht ob du an dem hier noch arbeiten willst, aber das Problem liegt wenn ich mich nicht irre darin, dass du nicht die ID der Nachricht, welche du mit echo ausgibst, an Javascript übermittelt bekommst?
    Also was mir jetzt spontan einfallen würde wäre, dass man nicht direkt die Nachricht mit echo ausgibt, sondern stattdessen beispielsweise nen json object draus macht, wo auch die id der Nachricht drin steckt:
    {"7":{"time":123456,"text":"Hallo duda"}}

    Von beiden Seiten (PHP und JS) ist es relativ wenig aufwand. Bei PHP nutzt du die Funktion json_encode und bei Jquery gibt es auch das passende dazu (API schauen^^).
    Dann brauchst du die ID 7 nur auslesen und im JS entsprechend setzen.
  4. bilo schrieb:
    ... ich finde das zwar nicht so toll aber was sollst ^^
    yo! hier ein triviales beispiel
    <?php
    // czibere.lima-city.de/_forum/bilo/php-und-javascript-variable-checken-setzen/index.php
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL | E_STRICT);
    
    $msg = 'das ist ein testmessage';
    
    
    exit(<<< EOT
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>php-variable in js-variable schreiben</title>
        <script type="text/javascript" language="JavaScript">
          msg = '$msg';
          alert('message: ' + msg);
        </script>
      </head>
      <body>
        <header>das wars ;)</header>
      </body>
    </hrml>
    EOT
    );
    recht einfach ;) du weist der variable im php-teil irgendwas zu und in html-teil (im beispiel innerhalb von exit()) knallst die php-variable dorthin, wo sie eben hingehört.
  5. 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!