php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2010, 08:58  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard [Erledigt] SQL UPDATE bei onclick Event!

Hi @ all,
nachdem ich stundenlang gegooglelt habe und nicht wertvolles beim raus kam,
hab ich mich letztendlich dazu entschieden, mich hier mal anzumelden.

aaalso, mein problem ist folgenes:



Wie in diesem Bild gezeigt, will ich ein Postfach programmieren.
Man sieht nur die Nachrichten mit dem Betreff und von wem die sind.
Mit einem onclick event wird eine div darunter von display:none; auf block gesetzt und der bg geändert.
Alles kein problem.
Jedoch muss ich, wenn einer eine Nachricht gelesen hat, in der Datenbank den status der Nachricht auf gelesen setzten.
Da das Postfach im grunde mit Javascript läuft wäre hierbei Ajax die einzig denkbare Lösung.
Hier der Quellcode:


PHP-Code:
<?php
defined
("MAIN") or die('No direct access!');

$c.="<script type=\"text/javascript\">
<!--
function showmessagetext (bdiv,tdiv){
    if(document.getElementById){
        var text = document.getElementById(tdiv);
        var box = document.getElementById(bdiv);
        if(text.style.display == 'none' ) {
            box.style.backgroundColor = '#d2eaff';
            text.style.display = 'block'; 
        } else {
            box.style.backgroundColor = '#fff';
            text.style.display = 'none'; 
        }
    }
}
//-->
</script>"
;

$erg=mysql_query("SELECT * FROM `cw_pn` WHERE `to` = '".addslashes($userinfo[id])."' AND `status` >= '1' ORDER BY time DESC") or die (mysql_error());
while(
$row=mysql_fetch_assoc($erg)){
    if(
$row[status]==1)
        
$bgcolor='fff7d4';
    else
        
$bgcolor='fff';
    
$from_userinfo=mysql_fetch_assoc(mysql_query("SELECT id,name FROM `cw_user` WHERE id = '".addslashes($row[from])."'"));
    
$c.='<div id="mail_box_'.$row[id].'" onclick="showmessagetext(\'mail_box_'.$row[id].'\',\'mail_text_'.$row[id].'\');" style="background-color:#'.$bgcolor.';padding:5px;margin:5px;border:1px solid #aaa;">'."\n";
    
$c.='<b>von '.stripslashes($from_userinfo[name]).'</b> ('.date('d.m.Y - H:i',$row[time]).')<br />';
    
$c.='<div style="font-size:18px;">'.stripslashes($row[betreff]).'</div>';
    
$c.='<div id="mail_text_'.$row[id].'" style="display:none;">'.format_text($row[text]).'</div>';
    
$c.='</div>';
}
?>
(ich hab das so programmiert, das dann die $c in einem echo ausgegeben wird)

Naja, der SQL Befehl wäre dann folgener:
PHP-Code:
$sql="UPDATE `cw_pn` SET status = '2' WHERE id = '".(die jeweilige id halt)."';"
Wäre toll wenn ich ne nützliche Antwort bekommen würde ^^
Ich hab schon versucht mir ein Ajax tutorial durchzulesen, nur irgendwie raff ich das alles nicht =(

Naja, schonmal danke
__________________

Geändert von Livastyle (14.01.2010 um 09:05 Uhr).
Livastyle ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.01.2010, 09:17  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Was raffst du denn genau nicht? Im Grunde ist Ajax primitiv. Du rufst poer Javascript eine Webseite bzw, ein Script auf. Fertig. Mehr musst du nicht wissen. Also innerhalb deines "if(text.style.display == 'none' ) {" startest du einen Request um die Nachricht als gelesen zu markieren.
In den Tutorials sollten Code-Fragmente sein, wie du ein Request-Objekt anlegst und wo du die URL zur entsprechenden PHP-Seite einträgst sollte ebenfalls selbsterklärend sein.

Nun solltest du noch im PHP eine Ausnahme machen, dass die Nachricht als Gelesen markiert wird, wenn sie ungelesen ist.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 14.01.2010, 09:52  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard

hmm, naja das ist mir schon ungefähr klar gewesen...
Jedoch bin ich noch ziemlicher JS anfänger und verstehe die Objekte noch nicht wirklich.
Kannst du mir mal ein (gutes und einfaches) Tutorials geben, da das was ich bisher gefunden habe, entweder zu kompliziert war oder auf english (ich hasse englishe Tuts).
ggf wäre ein Beispiel mit kommentare perfekt
__________________
Livastyle ist offline   Mit Zitat antworten
Alt 14.01.2010, 10:13  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Einführung in Ajax

Bei req.open wird die URL übergeben. Bei dir halt das PHP-Script deines Vertrauens.

Zusätzlich brauchst du in deinem Fall natürlich den Get-Parameter für die Nachricht-ID. Die Funktion doIt würde also zusätzlich den Parameter "msgID" erhalten, den du entsprechedn anhängst. Alles andere sollte hoffentlich selbsterklärend sein.

Die "onReadyState" ist eine Callback-Funktion, die mehr oder minder auswertet, ob das erfolgreich war oder nicht. Inwieweit du das brauchst, bleibt dir überlassen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 14.01.2010, 10:15  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard

wow, danke werds mir mal ansehen ^^
ich werde die nachricht editieren obs erfolgreich war
__________________
Livastyle ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:19  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard

JAAAAA, vielen dank x)
es funzt, werde hier ab sofort aktiv sein,
ich liebe dieses forum =D

aber ein problem hab ich noch:
ich hab jetzt ne php datei alleine für diese aktion erstellt.
Jedoch was ist wenn die jemand findet und dann in die GET die id´s von mails eingibt, die gar net ihm gehören?

Quelltext:
PHP-Code:
<?php
if(is_numeric($_GET[mid])){
    include(
"../../admin/include/mysql.inc.php");
    
mysql_query("UPDATE `cw_pn` SET status = '2' WHERE id = '".addslashes($_GET[mid])."'");
}
?>
ich hätte mir gedacht, dass ich dann noch abfrage ob die mail wirklich ihm gehört, also den, der das ändern will.
aber wie übermittel ich dem script die id vom jeweiligen benutzer?
__________________

Geändert von Livastyle (14.01.2010 um 13:24 Uhr).
Livastyle ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:51  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Cookies und damit die Sessions sind automatisch auch bei einem Ajax-Request verfügbar
Dazu musst du extra nichts programmieren. Und wenn Cookies nicht verfügbar sind, wie bei anderen Links auch einfach die Session-ID mit als GET-Parameter in die URL tun.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 14.01.2010, 13:57  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard

hmm, mit session_id hab ichs versucht, ging aber net =/
__________________
Livastyle ist offline   Mit Zitat antworten
Alt 14.01.2010, 14:15  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wie genau hast du es probiert?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 14.01.2010, 22:28  
Neuer Benutzer
 
Benutzerbild von Livastyle
 
Registriert seit: 14.01.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Livastyle befindet sich auf einem aufstrebenden Ast
Livastyle eine Nachricht über ICQ schicken Livastyle eine Nachricht über MSN schicken Livastyle eine Nachricht über Skype™ schicken
Standard

also, mein login funktioniert so, dass beim einloggen die session_id in der db gespeichert wird.
eigentlich wollte ich dann in der ajax datei da den gleichen abruf machen, also SELECT daten where sid, du weisst....
naja, aber er meinte immer, ich sei net eingeloggt.

fatzit: i-was stimmt da net...
EDIT: ach jetzt hab ichs...
hab das mit dem session_id in get übertragen überlesen.... xD
naja gut dann haben wir das jetzt endlich durch ^^

danke nomma

=)
__________________

Geändert von Livastyle (15.01.2010 um 04:54 Uhr).
Livastyle ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbankinhalt per Onclick event ändern Extremefall PHP Tipps 2009 8 01.01.2010 02:03
MySQL UPDATE: Feld überall / in allen Tabellen updaten Lightware Datenbanken 13 25.09.2009 12:44
[Erledigt] vista, windows update Fehler 80070422 Screeze Off-Topic Diskussionen 3 23.09.2009 18:24
[Erledigt] Im &lt;option&gt; ein onClick Event für Vorauswahl Felix JavaScript, Ajax und mehr 2 08.09.2009 14:53
[Erledigt] OnClick event abbrechen Frank JavaScript, Ajax und mehr 4 25.08.2009 12:15
mySQL UPDATE gibt Fehler aus Tyrra PHP Tipps 2009 12 11.08.2009 18:03
[Erledigt] UPDATE wird trotz if clause vor SELECT ausgeführt Slithers Datenbanken 2 10.06.2009 16:13
Insert ... On duplicate key update Jacke Datenbanken 2 08.04.2009 14:11
Event: User Regestrierung in die Datenbank??? Dunkelelf9 Datenbanken 2 22.12.2008 15:49
jQuery: Parameter an onclick Event ecomeback HTML, Usability und Barrierefreiheit 1 08.04.2008 11:23
Update / syntaxfehler prinzli Datenbanken 7 24.11.2007 21:24
JS - node, onClick Event hinzufügen, MSIE Zergling-new HTML, Usability und Barrierefreiheit 3 21.07.2006 19:46
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
[Erledigt] probleme mit event datenbank Datenbanken 1 04.09.2004 00:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax sql update, onclick mysql update, javascript sql update, onclick mysql, http://www.php.de/javascript-ajax-und-mehr/63348-erledigt-sql-update-bei-onclick-event.html, onclick update sql, mit onclick sql befehl php, update sql onclick, per onclick mysql update, onclick sql befehl, onclick sql, onclick update mysql, ajax update sql, sql update javascript, javascript onclick sql, javascript update sql, php onclick sql befehl, javascript onclick mysql update, php sql onclick, onclick php

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum