Checkbox soll Eingabefeld Aktivieren

Hallo ihr!

Ich hab mal wieder ne Frage!

Ich habe jetzt ein PHP Formular erstellt, und da gibt es ein Eingabefeld, das ich grau (disabled) gemacht habe. Daneben ist eine Checkbox.

Und wenn man die Checkbox en häkchen reinmacht dann soll das Eingabefeld wieder normal werden dass man was reinschreiben kann :wink:

Weiß jemand wie man das in PHP realisieren kann, also vielleicht mit

[code]<?php
if(isset( … ???
{

}

?>[/code]

oder so ?

Danke

Gruß bosz4 :wink:

Moin,

dazu müsstest du aber die Checkbox als Formular sehen, das an den PHP Parser senden, die Seite wieder neu aufrufen und das Eingabe Feld wieder zur Verfügung stellen.

Was du benötigst ist wohl eine JavaScript-Lösung …

MfG

Ja ich hab das jetzt so gemacht:

Das Formular:

[code]

[/code] _______________________

<?php $checkbox = $_POST["checkb1"]; ... ?>

ok danke, aber geht es auch, dass man nicht extra auf den Button klicken muss sondern das Feld sofort frei wird wenn man den Haken mach?

sry das ich immer meckern muss :unamused:

Ja, aber nicht per PHP, sondern nur per JavaScript …

Leider kann ich z.Zt. noch zu wenig JS sonst würde ich dir ne Lösung schreiben :smiley:

MfG

Ich kann jedem der nicht gerne mit Javascrript schreibt Xajax empfehlen , da wird PHP gefordert auch wenn natürlich die eigentlichen Aktionen im Hintergrund per Javascript laufen, mit denen man aber nichts zu tun hat.

was redet ihr denn hier für einen Mist zusammen :ps:

<input type="checkbox" name="activator" onclick="document.getelementbyid('to_activate').enable();" />
<input type="checkbox" name="to_activate" disabled="true" />

so in der Art, im Moment wird es aber nicht wieder deaktiviert :wink:
ungetestet :neutral_face:

[code]

[/code]

Ach herrje.

Ist eigentlich eine ganz simple JavaScript-Lösung mit gerade mal zwei Codezeilen… Allerdings setzt diese ein vernünftiges XHTML voraus. So sollte z.B. ein checked korrekterweise so notiert sein:

<input type="checkbox" onclick="switch('element')" checked="checked" /> <input type="text" disabled="disabled" id="element" />
Eventuell wäre sogar ein “onchange” als Event-Handler die bessere Lösung…

Für ein komplettes Beispiel hab’ ich gerade keine Zeit… nur kurz:

Das JS in Aktion kannst Du hier ansehen:
-> i-de.biz/aipc/assist.html (“Expertenoptionen anzeigen” lassen (dabei kommt dieselbe Lösung für das komplette Feld zur Anwendung), dann z.B. bei “Prozessor” am Häkchen spielen…)
Das JS dazu: i-de.biz/scripts/assist.js

Duchlesen und lernen :wink:
Wichtig dabei ist, bei der ersten Anzeige der Seite die Elemente zu “initialisieren”, also mit Standardwerten zu versehen.

So, jetzt habe ich auch etwas mehr Zeit zum “scribbeln”:

function toggle(remote,what) { if (document.getElementById(remote).checked) {document.getElementById(what).disabled=false;} else {document.getElementById(what).disabled=true;} }Das ist eigentlich schon alles, was an JS gebraucht wird.
Im HTML-Teil notierst Du den Event-Handler und übergibst das Element, das gesteuert werden soll:

<input type="checkbox" onclick="toggle(this,'textfeld')" /> ... <input type="text" id="textfeld" />

Das war alles.
beim Klick wird die Funktion zum “Umschalten” aufgerufen - mit zwei Argumenten: einmal das Element, das die Anzeige “steuern” soll (also die Checkbox) mittels “this” (wichtig: ohne Anführungszeichen notieren!), zum Zweiten die ID des Elementes, das dis/enabled werden soll.

Die Funktion selber prüft, ob das “Steuerelement” “angehakt” ist (= Textfeld enabled) oder nicht ( = Textfeld disabled).
Mehr ist nicht nötig - ausser, wie oben bereits geschrieben, die Initialisierung bei Erstaufruf der Seite.
User ohne (aktiviertes) JS können das Formular so auch verwenden, da nicht per default disabled wird :wink:

ok danke id.efix das hat geklappt