komme nicht weiter!

boennchen

Mitglied
Hallo Leute,
ich hoffe mir kann einer weiterhelfen

Problemstellung:
Habe Mitglieder die mittels php aus einer MySQL-DB gelesen werden. Hier soll jetzt jedes Mitglied bewertet werden. Die Eingabe soll durch ein Tastaturfeld mit Mausklick geschehen.
Ist ein Mitglied bewertet soll das Tastaturfeld automatisch in die nächste Zeile springen und um den nächsten Bewerten zu können. (am besten dasTastenfeld mit dem Mitglied durch einen Strich oder Pfeil verbunden sein um genau zu sehen wenn man bewertet )

Da ich leider keine Ahnung habe wie das gehen soll und schon gegoogelt habe, könnt Ihr mir einen guten Lösungsansatz oder Infos geben wie ich das realisieren kann.

Viel Dank schonmal
 
also, es soll so ein Tastenfeld sein wo Noten 1.0, 1.3, usw bis 5.0 stehen diese sollen quasi wie Buttons gedrückt werden und dann soll die Note dem Mitglied zugeordnet werden.

Ich hoffe das war etwas mehr verständlich
 
Ahso.
Als Tastatur kannst du diverse Dinge nehmen...Butoons, Links,...ich würd mir wahrscheinlich ne Imagemap nehmen mit dem Bild einer Tasatatur, und auf die einzelnen Tasten die Funktionsaufrufe legen.

Die Aufrufe wären erstmal recht simpel. Angenommen du hast eine Funktion "bewertung()"...
dann
Code:
<area href="javascript:bewertung(1.0)" ....>
<area href="javascript:bewertung(1.1)" ....>
<area href="javascript:bewertung(1.2)" ....>
usw.

Zu den Usern selbst:

Die könntest du bspw. so ausgeben:
Code:
<?php echo $userName;?><input type="hidden"name="userId[]"value="<?php echo $userId;?>"><input type="text" name="userNote[]" readonly>

So hast du jeweils ein Paar von Feldern userId[]/userNote[], welches du später serverseitig auswerten kannst.

Zur Funktion bewertung():

Da brauchst du erstmal einen Zähler, um zum nächsten User zu springen.... den Bringst du am Besten ausserhalb der Funktion unter und weist ihm als Wert "-1" zu.
Bei jedem Funktionsaufruf erhöhst du den Zähler erstmal um 1.

So kannst du dann bereits auf die Formularelemente zugreifen:
Code:
document.formularname.elements['userNote[]'][zaehlervariable].value=bewertung.arguments[0];
....umd das jeweilige Feld zu markieren, gibts dann viele Varianten, du könntest bspw. das jeweilige Feld userNote[] farblich hervorheben, oder auch eine ganze <tr>, wenn du alles in einer Tabelle hast(der Zugriff wäre ähnlich einfach, da es ja schätzungsweise genausoviel Reihen wie Formularfelder gibt):
Code:
document.getElementById('idDerTabelle').rows[zaehlervariable].style.backgroundColor='red';
Das mit den Verbindungslinien ginge auch, ist aber überaus umständlich, da sie kreuz&quer verlaufen müssten, was nicht gerade problemlos zu bewerkstelligen ist.
Wenn du es trotzdem willst,schau mal beim zornigen Walter rein :-)


Jetzt musst du nur noch prüfen, ob du am Ende angelangt ist
Code:
if(zaehlervariable>=document.formularname.elements['userNote[]'].length)
{
document.formularname.submit()
}
...und kannst bspw. das Formular senden.
 
Hallo,

danke schon mal für die ziemlich ausführlich Antwort.
Ich habe jetzt mal probiert dies mal in mein Script umzusetzten, und wie sollte es anderes sein, man merk das ich kein JavaScript-Profu bin.
Deshlab wäre es nett wenn mir nochmal einer Helfen könnte:
HTML:
            <script language= "JavaScript"> 
            <!--
            function bewertung() {
              for (var i=-1; i<"<?php echo $num; ?>"; i++ ) {
            	document.displayFormSenden1.elements['note[]'][i].value=bewertung.arguments[0];
              }
            }
            //--> 
            </script>
       <?php
            echo "<form name="displayFormSenden1>";
            // Tabellenkopf
            for ($t=0;$t<$num;$t++) {
              $vorname[$t] = htmlspecialchars(mysql_result($result,$t,"vorname"));
              ...
              echo "<tr>
 		<td class='tableData'>$vorname[$t]<input type='hidden' name='name[$t]' value='$vorname[$t]'></td> 
 		<td class='tableData'>$m_nr[$t]<input type='hidden' name='m_nr[$t]' value='$m_nr[$t]'></td>
 		echo "<td><input type='text' name='note[$t]' value='' size='3' readonly></td>";
            		echo "<td>";
            	   
            		$note10 = '1.0';
            		$note13 = '1.3';
            		$note17 = '1.7';
            		$note20 = '2.0';
            		$note23 = '2.3';
            		$note27 = '2.7';
            		$note30 = '3.0';
            		$note33 = '3.3';
            		$note37 = '3.7';
            		$note40 = '4.0';
            		$note50 = '5.0';
            		$noteNT = 'NT';
            
 		echo "<input class='tableData' type='button' value='$note10' onClick='bewertung(1.0)'>";
 		echo "<input class='tableData' type='button' value='$note13' onClick='bewertung(1.3)'>";
 		echo "<input class='tableData' type='button' value='$note17' onClick='bewertung(1.7)'>";
 		echo "<input class='tableData' type='button' value='$note20' onClick='bewertung(2.0)'>";
 		echo "<input class='tableData' type='button' value='$note23' onClick='bewertung(2.3)'>";
 		echo "<input class='tableData' type='button' value='$note27' onClick='bewertung(2.7)'>";
            		echo "<br>";
 		echo "<input class='tableData' type='button' value='$note30' onClick='bewertung(3.0)'>";
 		echo "<input class='tableData' type='button' value='$note33' onClick='bewertung(3.3)'>";
 		echo "<input class='tableData' type='button' value='$note37' onClick='bewertung(3.7)'>";
 		echo "<input class='tableData' type='button' value='$note40' onClick='bewertung(4.0)'>";
 		echo "<input class='tableData' type='button' value='$note50' onClick='bewertung(5.0)'>";
 		echo "<input class='tableData' type='button' value='$noteNT' onClick='bewertung(NT)'>";
            		echo "</td>";
 
            	echo "</tr>";
            }
            	echo "</table>";
       ?>
Leider tut sich nichts :-(
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück