PHP und Javascript Variable checken/setzen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufwand
beispiel
beschreibung
code
date
datei
datenbank
entsprechend setzen
funktion
index
lade
limit
message
nachricht
ordern
problem
setzen
teil
url
variable schreiben
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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. -
bilo schrieb:
yo! hier ein triviales beispiel
... ich finde das zwar nicht so toll aber was sollst ^^<?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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage