function in Javascript
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abfrage
absender
belieben
code
dank
display
durchlauf
ergebnis
gast
grad
krieg
machen
nachricht
nutzen
problem
sagen
sinn
status
tabelle
unbekannte anzahl
-
Hi ich habe ja ltztens erst gefragt, wie ich das machen muss also eine Function mehrmals gleichzeitig ablaufen lassen ohne, dass sich die Variablen überschreiben. Leider habe ich dass nur teilweise geblickt und auch auf selfhtml und anderen Seiten habe ich dazu nur unpassende erklärungen gefunden, die mir nicht direkt weiterhelfen. Ok aber mal zu meinem Problem:
Ich habe eine unbekannte Anzahl an tabellen Zeilen. In jeder 2. ist ein div mit dem displaywert none. Beim Klicken auf die Tabellenleiste (also die obere), wird das div darunter auf display=inline gestellt und von null nach 100 hochgedimmt. Das div soll logischerweise nur erscheinen, wenn es auf display=none ist und andernfalls wieder ausgeblendet werden. Doch da hängts irgendwie und ich komme auf keine Lösung. Mal mein Script:
<script language="javascript"> var masvis = 0;var masvis2 = 100; function show_message (id){ if (document.getElementById(id).style.display != 'inline'){ document.getElementById(id).style.display='inline'; if (masvis < 100){++masvis; document.getElementById(id).style.MozOpacity = masvis / 100; window.setTimeout(function(){show_message(id)}, 1); }else {masvis = 0;}} else if (document.getElementById(id).style.display == 'inline'){ if (masvis2 > 0){++masvis2; document.getElementById(id).style.MozOpacity = masvis2 / 100; window.setTimeout(function(){show_message(id)}, 1); }else {masvis2 = 100; document.getElementById(id).style.display='none';}} } </script>
und sonne Tabelle: (mit php erstellt)
<table> <?php $logstatus = $_SESSION['logged']; $user = $_SESSION['user']; $number = 0; if ($logstatus == "" OR $logstatus == "false") {echo "Sie sind nicht eingeloggt! <br> Sie sind als Gast nicht befugt diesen Bereich zu betreten!";} else { $abfrage = "SELECT * FROM nachrichten WHERE empfänger LIKE '$user'"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { $number = $number + 1; echo "<tr>"; if ($row->status == 0){echo "<td><img src=\"i_message_close.png\" ></td>";} else if ($row->status == 1){echo "<td><img src=\"i_message_open.png\" ></td>";} echo "<td><img src=\"i_message_delete.png\" ></td>"; echo "<td class=\"massage_line\" onclick=\"show_message('message_".$number."');\">"; echo "Nachricht von ".$row->absender.":"; echo ", $row->empfänger, $row->time , <br>"; echo "</td>"; echo "</tr>"; echo "<tr><td colspan=\"3\"><div class=\"message\" id=\"message_".$number."\" >".$row->message."</div></td></tr>"; } } ?> </table>
Das js macht natürlich keinen Sinn, da beim 2. Durchlauf der Wert schon wieder umgestellt wurde, aber ich kriegs grad einfach nicht hin, und hoffe daher, dass ihr mir sagen könnt, wie ich da welche Variablen und Arrays nutzen muss! MVG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
programtools schrieb:
Das js macht natürlich keinen Sinn, da beim 2. Durchlauf der Wert schon wieder umgestellt wurde, aber ich kriegs grad einfach nicht hin, und hoffe daher, dass ihr mir sagen könnt, wie ich da welche Variablen und Arrays nutzen muss! MVG
Also ich vermute mal das das Problem bei den variablen masvis und masvis2 liegt, da diese Global sind und von jeder Funktion nach belieben geändert werden.
Du könntest also diese beiden variablen zu Arrays machen und den Status mit der id verknüpfen.
Oder
Du speicherst den aktuellen masvis/masvis2-wert im html-code z.B. in einem versteckten input-feld.
Da gibt es bestimmt noch elegantere lösungen als meine vorgeschlagenen...
-
Ok danke schonmal! Ich wollte ja das mit der Array machen. Kannst du mir sagen, wo ich am besten nachlesen kann wie das klappt??
MVG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage