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 23.08.2010, 14:14  
Neuer Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 5
PHP-Kenntnisse:
Anfänger
wilsonfedex befindet sich auf einem aufstrebenden Ast
Standard onclick vs. onmouseout

Hallo,

habe folgendes vor:
Mittels php-script erstelle ich eine Tabelle, die auf eine Datenbank zugreift. Je nachdem wie Daten sind, soll die Tabellenzelle die Farbe ändern - ähnlich wie ein Sitzplan (Sitz frei, Sitz belegt, Sitz reserviert).

Das Darstellen der verschiedenen Zellenfarben stellt kein Problem dar.

Wenn man jetzt mit dem Mauszeiger über eine Zelle fährt, soll diese die Farbe wechseln (onmouseover funktioniert hier einwandfrei!) und wieder zur ursprünglichen Farbe wechseln, wenn der Mauszeiger wieder die Zelle verlässt (onmousout funktioniert hier auch super!).

Klickt man die Zelle an (onclick) soll sich auch die Zellenfarbe ändern (so wie ne Markierung). Auch das funktioniert.

Jetzt zum Problem. Wenn ich dann die "angeklickte" Zelle verlasse kommt die onmouseout-Funktion zu tragen und die Zelle erhält wieder die ursprüngliche Farbe.

Ich habe dann versucht, die onmouseout-Funktion an eine Bedingung (Farbe der Zelle) zu knüpfen, aber da hängt es anscheind.

Hier mein Code: (php-Schleife)

PHP-Code:
 echo"<td bgcolor=\"#00FF00\"
                          onclick=\"if (this.bgColor = '#0000FF')
                                        {this.bgColor = '#FF1CAE';}\"

                          onMouseover=\"if (this.bgColor != '#FF1CAE')
                                               {this.bgColor = '#0000FF';}\"

                           onMouseout=\"if (this.bgColor != '#FF1CAE')
                                               {this.bgColor = '#00FF00';
                                               this.title = 'bitte klicken um auszuwaehlen';}\"

            width=\"25\" align=\"center\">$i</td>"

Muss ich onclick in der Abfrage hinter onmouseout stellen?

Vielen Dank für eure Ratschläge!!
wilsonfedex ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.08.2010, 14:18  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Code:
if (this.bgColor = '#0000FF')
Hier vergleichst du nicht, sondern weist einen Wert zu.
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 23.08.2010, 15:22  
Neuer Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 5
PHP-Kenntnisse:
Anfänger
wilsonfedex befindet sich auf einem aufstrebenden Ast
Standard

Stimmt, mein Fehler. Statt '==' hab ich nur '=' geschrieben.

Habe das auch umgeändert, allerdings passiert jetzt bei onclick nichts mehr, was vorher noch ging.

Randbemerkung:

Da ich vorher ja eine Zuweisung hatte, die bestimmt immer TRUE ist, wurde meine if-Anweisung durchgeführt, also die Farbe der Zelle geändert.
Allerdings dürfte dann doch die onmouseout nicht mehr greifen, da die Farbe ja geändert wurde. Zuerst auf die Farbe der falschen Abfrage, und dann durch die Farbe der if-Anweisung bei onclick.

PHP-Code:
echo"<td bgcolor=\"#00FF00\" 
                          onclick=\"if (this.bgColor == '#0000FF') 
                                        {this.bgColor = '#FF1CAE';}\" 

                          onMouseover=\"if (this.bgColor != '#FF1CAE') 
                                               {this.bgColor = '#0000FF';}\" 

                           onMouseout=\"if (this.bgColor != '#FF1CAE') 
                                               {this.bgColor = '#00FF00'; 
                                               this.title = 'bitte klicken um auszuwaehlen';}\" 

            width=\"25\" align=\"center\">$i</td>"

D.h. die Abfrage bei onclick ist nicht TRUE, da die Farbe nicht stimmt.
Allerdings wird die Farbe bei onmouseover gesetzt und bei onmouseout wieder zurückgesetzt.

Hätte dann ja immer noch einen Fehler in der if-Abfrage bei onclick
wilsonfedex ist offline   Mit Zitat antworten
Alt 23.08.2010, 15:27  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Wozu brauchst du bei onclick überhaupt eine Bedingung?
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 23.08.2010, 15:31  
Neuer Benutzer
 
Registriert seit: 22.08.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
Murdoc befindet sich auf einem aufstrebenden Ast
Standard

das ganze macht im grunde überhaupt keinen sinn. erklär mal was für ein verhalten du gerne möchtest, vielleicht kann man dann was basteln.

// habs gecheckt

Geändert von Murdoc (23.08.2010 um 15:57 Uhr).
Murdoc ist offline   Mit Zitat antworten
Alt 23.08.2010, 15:33  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Welches "Ganze" macht keinen Sinn?

Das, was er erreichen möchtest, hat er doch bereits im Ausgangsposting beschrieben!
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 23.08.2010, 16:00  
Neuer Benutzer
 
Registriert seit: 22.08.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
Murdoc befindet sich auf einem aufstrebenden Ast
Standard

die bedingungen in den event's. ziemlich undurchsichtig.

ich würde es so machen:
Code:
<style type="text/css">
    td.row {
        width: 25px;
        text-align: center;
        background-color: #00FF00;
    }
    
    td.active {
        background-color: #0000FF;
    }
    
    td.selected {
        background-color: #FF1CAE;
    }
</style>

<script type="text/javascript">
    function handle_row_click(td) {
        if(td.className.match(/\bselected\b/))
            return;

        td.className = td.className.replace(/\bactive\b/, '') + " selected";
    }
    
    function handle_row_over(td) {
        if(td.className.match(/\b(selected|active)\b/))
            return;
            
        td.className += " active";
    }
    
    function handle_row_out(td) {
        if(td.className.match(/\bselected\b/))
            return;
            
        td.className = td.className.replace(/\bactive\b/);
    }
</script>

<td class="row" onclick="handle_row_click(this);" onmouseover="handle_row_over(this);" onmouseout="handle_row_out(this);"><?php print $i; ?></td>
ps: ihr seid wirklich ein freundlicher haufen hier

Geändert von Murdoc (23.08.2010 um 16:27 Uhr).
Murdoc ist offline   Mit Zitat antworten
Alt 23.08.2010, 16:18  
Neuer Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 5
PHP-Kenntnisse:
Anfänger
wilsonfedex befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Asipak Beitrag anzeigen
Wozu brauchst du bei onclick überhaupt eine Bedingung?
hier mein Schema:

Zelle ist grün.

Maus fährt über Zelle -> Zelle blau
Maus verlässt Zelle -> Zelle wieder grün

Mausklick auf Zelle -> Zelle wird orange und bleibt so

Mausklick darf nur ausgefährt werden, wenn Zelle blau ist ( und Zelle wird nur blau, wenn sie vorher grün war)
wilsonfedex ist offline   Mit Zitat antworten
Alt 23.08.2010, 16:25  
Neuer Benutzer
 
Registriert seit: 22.08.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
Murdoc befindet sich auf einem aufstrebenden Ast
Standard

er will damit sagen: die zeile wird immer blau sein wenn man klickt (es sei denn sie ist schon orange), deswegen ist die bedingung nicht umbedingt sinnig.
Murdoc ist offline   Mit Zitat antworten
Alt 23.08.2010, 16:45  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja, wenn man klickt, ist der Mauszeiger ohnehin über der Zelle, womit du bereits davon ausgehen kannst, dass sie blau ist. Das musst du nicht unbedingt nochmals überprüfen.
__________________
HalloPHP
Asipak 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
Onclick Problem HipHopFreak Trash 0 23.08.2010 14:02
php array mit onclick an js übergeben? MariL PHP Tipps 2010 4 25.02.2010 07:25
div min onclick über Link mistermint HTML, Usability und Barrierefreiheit 4 14.01.2010 19:57
onClick + overlays aber ohne submit Chili-Schaf JavaScript, Ajax und mehr 2 04.12.2009 12:12
onclick mit 3 angaben? taurus JavaScript, Ajax und mehr 8 01.11.2009 22:25
[Erledigt] OnClick event abbrechen Frank JavaScript, Ajax und mehr 4 25.08.2009 12:15
[Erledigt] onclick, onmoseover,onmouseout in 1 href FreddyS HTML, Usability und Barrierefreiheit 11 31.07.2009 20:29
onclick vor seitenaufruf ausführen KokosDesign JavaScript, Ajax und mehr 4 27.05.2009 01:25
onclick eines buttons ändern necrom0rb HTML, Usability und Barrierefreiheit 6 27.04.2006 21:42
JS: Frage zu onClick in Verbindung mit einer Funktion HTML, Usability und Barrierefreiheit 1 04.11.2005 16:06
Variable mit onClick übergeben? PHP Tipps 2005-2 2 22.09.2005 15:33
mit onClick PHP datei ausführen lassen Asipak HTML, Usability und Barrierefreiheit 15 22.08.2005 20:44
mit onclick() Datei aufrufen HTML, Usability und Barrierefreiheit 6 11.08.2005 11:22
onmousein flash einblenden, bei onmouseout ausblenden HTML, Usability und Barrierefreiheit 11 08.06.2005 11:00
[Erledigt] javascript onclick oder doch was anderes? HTML, Usability und Barrierefreiheit 2 04.06.2005 02:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
onmouseout php, onclick onmouseout, http://www.php.de/javascript-ajax-und-mehr/71070-onclick-vs-onmouseout.html, <td> farbe mit onclick ändern, ajax onmouseout ausgang, onmouseover onclick onmouseout, onmouseout flash, html: mouseout farbe wechseln, javascript onmouseout if, onmouseout bei flash object, onmouseout wie vorher, php onclick zellenfarbe, if anweisung onmouseout, onclick mit if bedingung, onclick farbe ändern, onmouseout onclick, onclick if bedingung and, onmouseout ursprüngliche farbe wiederherstellen, php if bedingung onclick, onclick maus ändern

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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