Website Textfeld aktivieren wenn Checkbox aktiviert wird

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von Nemesis, 22.04.2010.

  1. #1 Nemesis, 22.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    Hi,
    ich habe hier eine Liste von Checkboxen, die dynamisch anhand einer Datenbankabfrage erstellt wird. zu jeder Checkbox gehört ein Textfeld. Mit der Checkbox wird der Artikel ausgewählt und in das Textfeld die gewünschte Anzahl eingegeben.
    Ich hätte nun gerne, dass aber nur die Textfelder aktiv sind, deren Checkboxen auch angehakt sind.
    Die Checkboxen und Textfelder werden per POST in jeweils einem array übergeben, dann wird mit einer Schleife errechnet wieviel von jedem Artikel angefordert werden muss.

    Das ganze mache ich bislang etwas unsauber:
    PHP:
    echo '<form name="Artikel" action="'.$_SERVER['PHP_SELF'].'" method="POST">';
                echo 
    'Artikel:<br>';
                while(
    $artikel mssql_fetch_assoc($moegliche_Artikel))
                {        
                    
    $q_vorbelegungArtikel "SELECT StandMenge, Einheit FROM WK50Artikel WHERE Artikel='".$artikel['Artikel']."';";
                        
    $vorbelegungArtikel mssql_query($q_vorbelegungArtikel);
                        
    $vorbelegungArtikel mssql_fetch_assoc($vorbelegungArtikel);
                        
    $Einheit $vorbelegungArtikel['Einheit'];
                        
    $vorbelegungArtikel $vorbelegungArtikel['StandMenge'];
                
                    echo 
    '<input type="checkbox" name="Artikel[]" value="'.$artikel['Artikel'].'" >'.$artikel['Artikel'].":   ";
                    echo 
    '<input type="text" name="AnzArtikel[]" style="text-align: right" size="5" value="'.$vorbelegungArtikel.'"> '.$Einheit.'<br>';
                }
                echo 
    '<input type="submit" value="Hinzufuegen">';
            echo 
    '</form>';    
    und verarbeitet wird es dann in einer foreach-Schleife, die das Artikel-Array durchläuft und gleichzeitig über ein NEXT($AnzArtikel) das Array mit der Anzahl.
    Problem ist jetzt:
    Wenn z.B. jemand einen Haken bei Artikel 3 setzt und aber bei Artikel 1 eine Anzahl eintippt, wird Artikel 3 mit der Anzahl von Artikel 1 berechnet, das soll aber nicht gehen, also möchte ich das Textfeld nur aktivieren, wenn auch der zugehörige Artikel aktiviert wurde.

    Mit Javascript dürfte das schwierig werden, da ich ja die ausgabe der Checkboxen dynamisch über eine schleife mache.

    kann man das sonst noch irgendwie lösen ?

    Danke !
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 ducky_boy, 23.04.2010
    ducky_boy

    ducky_boy Eroberer

    Dabei seit:
    08.06.2009
    Beiträge:
    69
    Zustimmungen:
    0
    Ich bin mir nicht sicher aber du köntest es so versuchen:

    Geb den Checkboxen und Textfeldern einen bestimmten Namen z.B.
    Wenn der Artikel die Artikelnummer 150682 ist, dann vergebe für die ID der Checkbox ChB150682 und für die ID des Textfeldes TeF150682.

    Dann könntest du per getelementbyid auf Textfeld + Checkbox zugreifen.

    Wird dann ChB150682 aktiviert dann muss eine Funktion aufgerufen die TeF150682 aktiviert.
     
  4. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Hi,

    nach ducky_boy gibt's folgende Loesung, die, denk ich, leicht zu verstehen ist.

    Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Unbenanntes Dokument</title>
    <script language="javascript" type="text/javascript">
    	
    	function activateTextBox(senderID)
    	{
    		document.getElementById('tb'+senderID).disabled = !document.getElementById('cb'+senderID).checked;
    		/*if(document.getElementById('cb'+senderID).checked)
    		{
    			document.getElementById('tb'+senderID).disabled = false;
    		}
    		else
    		{
    			document.getElementById('tb'+senderID).disabled = true;
    			document.getElementById('tb'+senderID).value = '';
    		}*/
    	}
    </script>
    </head>
    
    <body>
    <input type="checkbox" id="cb1" onclick="javascript:activateTextBox(1);" />&nbsp;<input type="text" id="tb1" disabled="disabled" />
    </body>
    </html>
    Der auskommentierte Teil dient zusaetzlich dem Leeren der jeweiligen TextBox.
     
Thema: Website Textfeld aktivieren wenn Checkbox aktiviert wird
Besucher kamen mit folgenden Suchen
  1. textfeld in checkbox

Die Seite wird geladen...

Website Textfeld aktivieren wenn Checkbox aktiviert wird - Ähnliche Themen

  1. Grundlagen Websites programmieren

    Grundlagen Websites programmieren: Hi, ich hab vor längerer Zeit mal Angefangen mir ne Website zu programmieren, damals nur mit html und css. Hat zwar funktioniert, war aber...
  2. TUX Bild auf der Website

    TUX Bild auf der Website: Hi Leute, Ich hab eine Website für eine Firma gemacht. Ich hab dort das Bild von Tux drauf gesetzt. Darf ich das? Also Tux für Werbezewecke...
  3. wget / curl - per Script eine Aktion auf einer Website auslösen

    wget / curl - per Script eine Aktion auf einer Website auslösen: moin moin, nachdem google mir nicht wirklich weiterhelfen konnte versuche ich mein glück mal hier. ich habe 2 wikis - confluence - eines im...
  4. Kann Website nicht öffnen

    Kann Website nicht öffnen: Unter Debian Etch und Lenny ist die Seite www.reinheim.de nicht zu erreichen, weder mit Iceweasel noch mit Opera und Konqueror. Mit Windows kein...
  5. thewebsiteisdown

    thewebsiteisdown: http://thewebsiteisdown.com/ Einfach köstlich ;D