Struppi: Checkboxen mit variablen Namen die zweite

Beitrag lesen

Hast du mal einen Link, wo die Übersetzung von PHP-Variablen in JS-Variablen erklärt wird?

Allein diese Frage impliziert bei mir, dass dein Konzept falsch sein muss.
Leider sind deine Beschreibungen nur bedingt hilfreich und ich habe immer noch keine Plan wo genau das Problem ist. Du sprichst von einem JS Problem ich sehe aber überwiegend nur PHP Code, was für JS absolut unrelevant ist.

Ich würd wenigstens gerne mal wissen, wie hoch der Aufwand ist.
Dann bräuchte ich nicht 500 Inputs oder so ersetzen, wenn es nur 2 gibt, weil ich die Anzahl der Checkboxen ja auch in einer PHP-Variable habe.

Soweit ich die Informationen zusammenfassen kann, sieht die ganze Sache so aus.
(Ich rede jetzt nur von dem was im Browser ankommt, die PHP Seite interessiert gar nicht)

Du hast Checkboxen, die in etwa so benant sind:

<input type=checkbox name='ID_1check'>
<input type=checkbox name='ID_2check'>
<input type=checkbox name='ID_3check'>

Du möchtest genau diese mit einer Funktion alle checken oder unchecken:

(Hier gibt es jetzt ein Problem, das sich aber trotz nachfragen nicht gelöst hat, deine PHP Ausgabe $id bzw. $row->id was steht da drin? falls dies völlig willkürlich ist, d.h. nicht durchnummeriert, dann musst du die folgende Variante nehmen. Ist dagegen $row->id forlaufend nummeriert oder irgendwie anders Systematisch, wäre die ganze Sache einfacher zu lösen)

Die Funktion könnte dann so aussehen:

  
function checkbox(status, which)  
{  
    if(!document.getElementsByTagName) return;  
    var input = document.getElementsByTagName('input');  
    for(var i = 0; i < input.length; i++)  
    {  
         if( input[i].type != 'checkbox'  
             || !input[i].name  
             || input[i].name.indexOf(which) == -1  
         ) continue;  
  
         input[i].checked = status  
    }  
}  

aufgerufen z.b. mit einer anderen Checkbox:
<input type="checkbox" onclick="checkbox(this.checked, 'check');"> alle

Ob 500 oder tausend ist egal. Eine Seite mit sovielen Formularelementen ist sowieso träge - Ich hab's mit ca. 800 Input elementen getestet und das Skript läuft einwandfrei ohne Verzögerung.

Struppi.