Hallo Andreas,
heute im laufe des Tages musste das "Anzeigen der Elemente" gelöst werden. Dieses Mal bin ich an das Problem von ganz andere Seite dran gegangen ohne Array ohne große Aufwand.
An dieser Stelle vielen Dank für Deine Hilfe, die Du mir geleistet hast, Dein Vorschlag von Gestern habe ich in Erwägung gezogen, leider kam ich mit ihm nicht klar :-(((( lag wohl an mir, denn persönlich komme ich mit PHP besser klar als mit JavaScript, JavaScript hat natürlich den unschlagbaren Vorteil, das bei jeder Kleinigkeit die Seite nicht jedes Mal neu geladen werden muss :-) Nicht desto trotzt mein persönlicher Eindruck über JavaScript ist, dass ich es JS immer interessanter finde westo länger ich damit arbeite :-)
Ab hier noch paar Sachen von gestern, die ich schon zusammen gefasst habe:
Wie Du aus dem Code entnehmen kannst, ist oben ein Reihe von Button (ich nenne sie hier r1), die Angaben über die Seitenzahl und Links eine Reihe (ich nenne sie hier r2) von Button, die Anzahl der Punkte auf eine Seite, eine dritte Reihe (ich nenne sie hier r3) ist darunter, die Elementliste. Wird die Seite aufgerufen bekommt der User die drei "Reihen", oben die Seiten (r1), links die Punkte (r2), in der "mitte" die Elementliste (r3). Nach dem laden der Seit ist "vorgewählt" ist die Seite eins, jetzt muss der User erst ein Punkt (r2) auf der linke Seite wählen, zu jedem Punkt(r2) kann er User ein Element aus der Elementlist (r3) in der "mitte" wählen. Hat der User ein Elelment(r3) gewählt soll die Seitenummer dahinter erscheine.
Nur so aus Neugier: Warum? Die ausgewählte Seite ist doch schon an der Farbe des angeklickten Buttons erkennbar.
Der User soll sehen wenn er sich auf eine andere Seiten befindet, welche Elemente schon gewählt worden sind. Sorry habe wider den Zweck vergessen :-((
Fangen wir mal mit dem Array an. Du hast mehrere Seiten, jede Seite hat mehrere Punkte und jeder Punkt mehrere Elemente.
Stop, bis zur dem Punkt stimmt, dh. jeder Seite hat mehrere Punkte aber jeder Punkt kann nur ein Element haben.
Falls Du Änderungen, Verkürzehrungen, Verbesserungen oder es komplett in der Variante mit Arrays lösen möchtest bin ich sehr erfreut darüber, denn schlisslich kennst Du Dich mit JS besser als ich.
Grüße Bernhard
In dem Code habe ich einige PHP Variable einfach belassen. Ab hier die Funktion: ...
var punkte_zahl = new Array(4); var zahl_der_artikeln = "12"; var seiten = new Array(2); function werte(element, id_nr, wert1, wert2, wert3, wert4){
var wochen_nr = 14; var layout_wahl = "dateiname"; var punkt = document.artikel.dot_position.value; // welchen Punkt auf der linke Seite hat der User grade angeklickt var seiteJ = document.artikel.gewaehlte_seite.value; //grade ausgewählte Seit in der Anzeigen
if(document.artikel.dot_position.value != ""){
for(var i=1; i<=zahl_der_artikeln; i++){ // Zahl der Elemnte
// Hier werden Elemente auf Null oder leer "" gesetzt die auf eine anderen Seiten, bzw. in einem anderem Punkt ausgewählt // worden sind. if(i==element){ for(var j=1; j<=<%=$seiten%>; j++){ for(var k=1; k<=<%=$punkt_max%>; k++){ document.getElementById("SEITEseite_"+j+"punkt"+k+"element"+i).innerHTML = ""; document.getElementById("ELEMENTseite_"+j+"punkt"+k+"element"+i).innerHTML = ""; } } } for(var j=1; j<=<%=$seiten%>; j++){ // Seitenzahl if(j==seiteJ){
for(var k=1; k<=<%=$punkt_max%>; k++){ // Max. Zahl der Punkt auf der linke Seite
if(k==punkt){
if(element == i){ document.getElementById("bgc_"+element).style.backgroundColor= "#99CC33"; document.getElementById("SEITEseite_"+j+"punkt"+k+"element"+i).innerHTML = seiteJ+"<br>"; document.getElementById("ELEMENTseite_"+j+"punkt"+k+"element"+i).innerHTML = punkt; } else { // Zuständig für das -löschen- der Zahlen beim angewähltem Punkt, dh. der User hat den Punkt 2 gewählt // und schaltent zwischen den Elemnten, es wird nur der letzt ausgewählte Elment gespeichert. document.getElementById("bgc_"+i).style.backgroundColor= "#FFFFFF"; document.getElementById("SEITEseite_"+j+"punkt"+k+"element"+i).innerHTML = ""; document.getElementById("ELEMENTseite_"+j+"punkt"+k+"element"+i).innerHTML = ""; } } } } } }
var gesammelte_werte = new Array(punkt, id_nr, wert1, wert2, wert3, wert4, wochen_nr, layout_wahl, zahl_der_artikeln, seiteJ); parent.dot_content.ausgabe_content(gesammelte_werte);
parent.top.head.location.href = "../htm/head.php?WEITER=<%=session_id()%>&tabelle_layout=ja&main_id="+id_nr+"&week="+wochen_nr+"&page="+seiteJ+"&field="+punkt+"&layout="+layout_wahl; var punktZahl = document.artikel.punkt_anzahl.value; // Die Anzahl der Punkte auf eine Seite
} else { alert("Fehler, bitte wählen Sie zurerst auf der linke Seite ein Punkt aus."); } } function seiten_zahl(seite_nr){
var wert_punkte = 0; for(var i=1; i<=punkte_zahl.length; i++){ if(i == seite_nr){ wert_punkte = punkte_zahl[(i-1)]; document.getElementById("s_"+i).style.backgroundColor= "#BDE7FF"; } else { document.getElementById("s_"+i).style.backgroundColor= "#CCCCCC"; } } if(wert_punkte == 0){ wert_punkte = punkte_zahl[0]; }
if(seite_nr){ document.artikel.gewaehlte_seite.value = seite_nr; document.artikel.punkt_anzahl.value = wert_punkte; } else { document.artikel.gewaehlte_seite.value = 1; document.artikel.punkt_anzahl.value = wert_punkte; }
punkte_aufbau(wert_punkte); }
function punkte_aufbau(wert_punkte_nr){
/* Die Variabel -auschalten- ist zuständig für das zurücksetzten alle Werte auf die Ausgangpositon beim wechseln zwischen den Seiten. */ var ausschalten = 0; for(var i=1; i<=4; i++){ // i<=4; nur Bsp. Wert if(i == wert_punkte_nr){ ausschalten = 1; document.getElementById("b_"+wert_punkte_nr).disabled=false; } else { if(i< wert_punkte_nr){ document.getElementById("b_"+i).disabled=false; } else { ausschalten = 1; document.getElementById("b_"+i).disabled=true; } } }
if(ausschalten == 1){ for(var i=1; i<=zahl_der_artikeln; i++){ document.getElementById("bgc_"+i).style.backgroundColor= "#FFFFFF"; } for(var i=1; i<=<%=$punkt_max%>; i++){ document.getElementById("b_"+i).style.color="#000000"; document.getElementById("b_"+i).style.fontWeight="normal"; document.getElementById("b_"+i).style.backgroundColor= "#CCCCCC"; document.artikel.dot_position.value = ""; } } } function button_farbe(button_nr){
for(var i=1; i<=4; i++){ // i<=4; nur Bsp. Wert if(button_nr == i){ document.getElementById("b_"+button_nr).style.color="#000000"; document.getElementById("b_"+button_nr).style.fontWeight="bold"; document.getElementById("b_"+button_nr).style.backgroundColor= "#99CC33"; } else { document.getElementById("b_"+i).style.color="#000000"; document.getElementById("b_"+i).style.fontWeight="normal"; document.getElementById("b_"+i).style.backgroundColor= "#CCCCCC"; } } document.artikel.dot_position.value = button_nr; } //--> </script> </HEAD> <BODY OnLoad="seiten_zahl('1');">
<form name="artikel" action="" method="POST"> <input type="hidden" name="dot_position" value=""> <input type="hidden" name="gewaehlte_seite" value=""> <input type="hidden" name="punkt_anzahl" value="">
<table border="0" CELLSPACING="0" CELLPADDING="0" class="dot_frame_navi"> <tr> <td colspan="3" height="30" valign="top"> <!-- Reihe r1, Seitenzahl --> <script type="text/javascript"> <!-- var SeitenZahl = "2"; for(var i=1; i<=SeitenZahl; i++){ document.write("<input type='button' id='s_"+i+"' value='"+i+"' style='width=25;'"); document.write("OnClick="seiten_zahl("+i+")">\n"); } //--> </script> </td> </tr> <tr> <td colspan="3" height="10" valign="center"> <div style="width:100%; height:0; left:0; background-color:#000000;"><IMG SRC="../images/pixel.GIF" BORDER="0" width="2" height="1"></div> </td> </tr> <tr> <td rowspan="12>" valign="top"> <!-- Reihe r2, Punktezahl --> <? for($i=1; $i<=12; $i++){ // nur Bsp. $i<=12; ECHO "\t<input type='button' id='b_".$i."' name='".$i."' value='".$i."' style="width=25;" OnClick="button_farbe('".$i."');"><br>\n"; } ?> </td> <td rowspan="<%=count($row_main)%>"> </td> <td> <!--Begin der Reihe r3, Elementenliste, mit Elementen --> <?
foreach($row_main as $key => $value){
ECHO "<div style="left:0px; width:200px; border:0px solid blue; cursor:hand;" OnClick="werte('".($key+1)."', '".@$value["ID"]."', '".$value[1]."', '".$value[2]."', '".$value[3]."', '".$value[4]."')">\n"; ?> <table border="0" CELLSPACING="0" CELLPADDING="0"> <tr> <td width="90"> <? if(isset($value[1])){ ECHO $value[1]; } else { ECHO " "; } ?> </td> <td rowspan="3" align="right" valign="top" width="18%"> <%=$value[0]%> </td> <td align="center" rowspan="3" width="20" id="bgc_<%=($key+1)%>"> <? for($i=1; $i<=$seiten; $i++){ for($j=1; $j<=$punkt_max; $j++){ echo "\t\t<span id='SEITEseite_".$i."punkt".$j."element".($key+1)."'></span>\n"; } } for($i=1; $i<=$seiten; $i++){ for($j=1; $j<=$punkt_max; $j++){ echo "\t\t<span id='ELEMENTseite_".$i."punkt".$j."element".($key+1)."'></span>\n"; } } ?> </td> </tr> <tr> <td> <? if(isset($value[2])){ ECHO $value[2]; } else { ECHO " "; } ?> </td> </tr> <tr> <td> <? if(isset($value[3])){ ECHO $value[3]; } else { ECHO " "; } ?> </td> </tr> </table> </div> <div style="width:200px; height:0; left:0; background-color:#000000;"><IMG SRC="../images/pixel.GIF" BORDER="0" width="1" height="1"></div> <? } ?>
</td> </tr> </table> </form> </BODY> </HTML>