PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
kleines problem mit javascript
Beitrag
<blockquote data-quote="timinol" data-source="post: 2037103" data-attributes="member: 589927"><p><strong>AW: kleines problem mit javascript</strong></p><p></p><p>erstmal vielen vielen dank!!!</p><p>ich bin ein riesenschritt weitergekommen! zum einen bestätigt es, dass ein cookie völlig unnötig ist, abgfesehen von der tatsache, dass es nicht unbedingt verlässlich ist, zum anderen ist es pures javascript, ohne libraries und sonstige konsorten.</p><p> </p><p>feststeht, dass du das prinzip erfasst hast. du bist dabei sogar einen schritt zu weit gegangen.</p><p>1. ein abspeichern der information "person=>farbe" NACH abspeichern der seite ist nicht notwendig.</p><p>2. um deine idee weiterzuspinnen, und damit das ganze etwas einfacher zu gestalten, habe ich VOR "form" einen hidden input mit namen und id "color" der dazu benutzt werden soll eben diese "person=>farbe"-info bereitzustellen.</p><p> </p><p>in diesem sinne habe ich also das ganze abgespeckt und mit deutschen kommentaren versehen, denn ich möchte dein augenmerk auf die funktion maj_img() richten. diese funktion wird nunmehr nicht mit allen nötigen infos versorgt so, dass die farben sich beim klicken nicht mehr ändern. die fehlermeldung der java-console sagt: ptitle undefined. diese funktion ist es auch, die die geplante zeit addiert und anzeigt (im div id="total").</p><p> </p><p>ich bin aber sicher, dass es sich nur noch um einen klacks ändern kann.</p><p> </p><p>an dieser stelle sei gesagt, dass deine functions genial einfach und kurz sind, so dass sogar ich sie teilweise verstehen kann.</p><p> </p><p>hier also der updatete code:</p><p>[CODE]</p><p><html></p><p> <head></p><p> <script language="javascript" type="text/javascript"></p><p> var valueColorMapping = {};</p><p> // holt farb-id fuer namen</p><p> function getColorByName(name) {</p><p> if (valueColorMapping[name] === undefined) {</p><p> var max = -1;</p><p> for (var key in valueColorMapping) {</p><p> max = Math.max(valueColorMapping[key], max);</p><p> }</p><p> valueColorMapping[name] = max+1;</p><p> }</p><p> return valueColorMapping[name];</p><p> }</p><p> // aufgerufen bei namens-wahl</p><p> function personSelected(form) {</p><p> var selected = form.options[form.selectedIndex];</p><p> person = selected.value;</p><p> perscol = getColorByName(selected.text);</p><p> }</p><p> function maj_img(id,obj,name,src) {</p><p> //id: id-parameter des inputs</p><p> //obj: bild (immer this, entspricht dem element in welchem javascript benutzt wird</p><p> //name: inhalt der attribute alt und title</p><p> //src: url des bildes </p><p> var div = document.getElementById("total");</p><p> div.innerHTML = "<PRE>geplante zeit:\n";</p><p> //setzt die bild-inputs</p><p> if ((name!=obj.alt)&&(person!=0)) {</p><p> //falls der name in alt und title sich vom aktuellen unterscheidet, wird der aktuelle ersetzt</p><p> document.getElementById(id).value = person;</p><p> obj.src = "img/plan/"+src+".png";</p><p> if(obj.alt=='') temp += 25;</p><p> obj.alt = name;</p><p> obj.title = name;</p><p> } else {</p><p> //ansonsten ist es ein flipflop, also default-image, alt und title sind leer und im input wird der default-wert gesetzt</p><p> //auf die default-option des selects (value=-1)</p><p> document.getElementById(id).value = -1;</p><p> obj.src = "img/plan/-1.png";</p><p> obj.alt = '';</p><p> obj.title = '';</p><p> if (temp>0) temp -= 25;</p><p> }</p><p> if (temp/100>0) div.innerHTML += Math.floor(temp/100)+"h"+temp%100+"min</PRE>";</p><p> else div.innerHTML += temp+"min</PRE>";</p><p> }</p><p> </script></p><p> <style type="text/css"></p><p> .day {</p><p> text-align: center;</p><p> vertical-align: top;</p><p> font-size: 60%;</p><p> font-weight: bold;</p><p> }</p><p> .spc {</p><p> font-size: 50%;</p><p> }</p><p> img {</p><p> border: 0;</p><p> vertical-align: middle;</p><p> }</p><p> form {</p><p> margin: 0px;</p><p> padding: 0px;</p><p> }</p><p> </style></p><p> </head></p><p> <body><center></p><p> <input type="hidden" id="color" name="color"></p><p> <form action="" method="post"></p><p> <select name="pers" onChange="personSelected(this);"></p><p> <option value="0" selected>----</option></p><p> <option value="10">Rémi</option></p><p> <option value="20">Marcel</option></p><p> <option value="30">Michel</option></p><p> <option value="40">Christiane</option></p><p> <option value="50">Julien</option></p><p> <option value="60">Matthieu</option></p><p> <option value="70">Vincent</option></p><p> <option value="80">Stéphane</option></p><p> <option value="90">Marc</option></p><p> </select></p><p> <br /><br /><br /></p><p> <table summary="" border="0" cellspacing="0" cellpadding="0"></p><p> <tr></p><p> <td class="day" style="height:15px;">Hrs-></td></p><p> <?php</p><p> if (isset($_POST['tab'])) {</p><p> print_r($_POST['tab']);</p><p> }</p><p> else for($j=0;$j<1;$j++) for($i=0;$i<96;$i++) $l[$j][$i]=-1;</p><p> $jrs = array("Lun","Mar","Mer","Jeu","Ven","Sam","Dim");</p><p> for($k=0;$k<24;$k++) echo '<td class="day" colspan="5">'.$k.'</td>';</p><p> echo "\r</tr>";</p><p> for($j=0;$j<1;$j++) {</p><p> echo '<tr></p><p> <td valign="middle">'.$jrs[$j].'&nbsp;</td>';</p><p> for($i=0;$i<96;$i++) {</p><p> if ($i%4==0) echo '<td class="spc">&nbsp;</td>';</p><p> $color = -1;</p><p>/* if (isset($_COOKIE['colors'])) {</p><p> $l[$j][$i] = trim($l[$j][$i]);</p><p> if (array_key_exists($l[$j][$i], $_COOKIE['colors']) !== false) $color = $_COOKIE['colors'][$l[$j][$i]];</p><p> }</p><p>*/ echo '<td valign="middle"></p><p> <input id="'.$j.$i.'" type="hidden" name="tab['.$j.']['.$i.']" value="'.$l[$j][$i].'" /></p><p> <img src="img/plan/'.$color.'.png" onClick="maj_img(\''.$j.$i.'\',this,ptitle,perscol);" alt="" title="" /></p><p> </td>';</p><p> }</p><p> echo "\r</tr>\n\t";</p><p> }</p><p> ?></p><p> </table></p><p> <br /></p><p> <input type="submit" value="enregistrer" /></p><p> </form></p><p> <div id='total' style="float:center; position:relative; center:75px;"></div></p><p> </center></body></p><p></html></p><p>[/CODE]</p></blockquote><p></p>
[QUOTE="timinol, post: 2037103, member: 589927"] [b]AW: kleines problem mit javascript[/b] erstmal vielen vielen dank!!! ich bin ein riesenschritt weitergekommen! zum einen bestätigt es, dass ein cookie völlig unnötig ist, abgfesehen von der tatsache, dass es nicht unbedingt verlässlich ist, zum anderen ist es pures javascript, ohne libraries und sonstige konsorten. feststeht, dass du das prinzip erfasst hast. du bist dabei sogar einen schritt zu weit gegangen. 1. ein abspeichern der information "person=>farbe" NACH abspeichern der seite ist nicht notwendig. 2. um deine idee weiterzuspinnen, und damit das ganze etwas einfacher zu gestalten, habe ich VOR "form" einen hidden input mit namen und id "color" der dazu benutzt werden soll eben diese "person=>farbe"-info bereitzustellen. in diesem sinne habe ich also das ganze abgespeckt und mit deutschen kommentaren versehen, denn ich möchte dein augenmerk auf die funktion maj_img() richten. diese funktion wird nunmehr nicht mit allen nötigen infos versorgt so, dass die farben sich beim klicken nicht mehr ändern. die fehlermeldung der java-console sagt: ptitle undefined. diese funktion ist es auch, die die geplante zeit addiert und anzeigt (im div id="total"). ich bin aber sicher, dass es sich nur noch um einen klacks ändern kann. an dieser stelle sei gesagt, dass deine functions genial einfach und kurz sind, so dass sogar ich sie teilweise verstehen kann. hier also der updatete code: [CODE] <html> <head> <script language="javascript" type="text/javascript"> var valueColorMapping = {}; // holt farb-id fuer namen function getColorByName(name) { if (valueColorMapping[name] === undefined) { var max = -1; for (var key in valueColorMapping) { max = Math.max(valueColorMapping[key], max); } valueColorMapping[name] = max+1; } return valueColorMapping[name]; } // aufgerufen bei namens-wahl function personSelected(form) { var selected = form.options[form.selectedIndex]; person = selected.value; perscol = getColorByName(selected.text); } function maj_img(id,obj,name,src) { //id: id-parameter des inputs //obj: bild (immer this, entspricht dem element in welchem javascript benutzt wird //name: inhalt der attribute alt und title //src: url des bildes var div = document.getElementById("total"); div.innerHTML = "<PRE>geplante zeit:\n"; //setzt die bild-inputs if ((name!=obj.alt)&&(person!=0)) { //falls der name in alt und title sich vom aktuellen unterscheidet, wird der aktuelle ersetzt document.getElementById(id).value = person; obj.src = "img/plan/"+src+".png"; if(obj.alt=='') temp += 25; obj.alt = name; obj.title = name; } else { //ansonsten ist es ein flipflop, also default-image, alt und title sind leer und im input wird der default-wert gesetzt //auf die default-option des selects (value=-1) document.getElementById(id).value = -1; obj.src = "img/plan/-1.png"; obj.alt = ''; obj.title = ''; if (temp>0) temp -= 25; } if (temp/100>0) div.innerHTML += Math.floor(temp/100)+"h"+temp%100+"min</PRE>"; else div.innerHTML += temp+"min</PRE>"; } </script> <style type="text/css"> .day { text-align: center; vertical-align: top; font-size: 60%; font-weight: bold; } .spc { font-size: 50%; } img { border: 0; vertical-align: middle; } form { margin: 0px; padding: 0px; } </style> </head> <body><center> <input type="hidden" id="color" name="color"> <form action="" method="post"> <select name="pers" onChange="personSelected(this);"> <option value="0" selected>----</option> <option value="10">Rémi</option> <option value="20">Marcel</option> <option value="30">Michel</option> <option value="40">Christiane</option> <option value="50">Julien</option> <option value="60">Matthieu</option> <option value="70">Vincent</option> <option value="80">Stéphane</option> <option value="90">Marc</option> </select> <br /><br /><br /> <table summary="" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="day" style="height:15px;">Hrs-></td> <?php if (isset($_POST['tab'])) { print_r($_POST['tab']); } else for($j=0;$j<1;$j++) for($i=0;$i<96;$i++) $l[$j][$i]=-1; $jrs = array("Lun","Mar","Mer","Jeu","Ven","Sam","Dim"); for($k=0;$k<24;$k++) echo '<td class="day" colspan="5">'.$k.'</td>'; echo "\r</tr>"; for($j=0;$j<1;$j++) { echo '<tr> <td valign="middle">'.$jrs[$j].' </td>'; for($i=0;$i<96;$i++) { if ($i%4==0) echo '<td class="spc"> </td>'; $color = -1; /* if (isset($_COOKIE['colors'])) { $l[$j][$i] = trim($l[$j][$i]); if (array_key_exists($l[$j][$i], $_COOKIE['colors']) !== false) $color = $_COOKIE['colors'][$l[$j][$i]]; } */ echo '<td valign="middle"> <input id="'.$j.$i.'" type="hidden" name="tab['.$j.']['.$i.']" value="'.$l[$j][$i].'" /> <img src="img/plan/'.$color.'.png" onClick="maj_img(\''.$j.$i.'\',this,ptitle,perscol);" alt="" title="" /> </td>'; } echo "\r</tr>\n\t"; } ?> </table> <br /> <input type="submit" value="enregistrer" /> </form> <div id='total' style="float:center; position:relative; center:75px;"></div> </center></body> </html> [/CODE] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
kleines problem mit javascript
Oben