michel gelin: Formular beim ausfüllen ändern

Hallo zusammen,

...ich suche eine möglichkeit ein formular beim ausfüllen zu ändern, d.h. wenn radiobutton ($second)= 1 sollen zusätzliche felder erscheinen ($addon) , dies aber nicht erst beim drücken von absenden.
ich habe dies schon vielerorts gesehen, doch habe keinen plan wie man das realisieren kann!

was bisher geschah..:

try.php

<?php
$addon = '  <p>
      <input type="text" name="y01">
      <input type="text" name="y02">
       </p>
             ';
echo '
<html>
<head>
<title>tryFORM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="try.php">
  <p>
    <input type="text" name="x01">
    <input type="text" name="x02">
  </p>
  <p> nein
    <input type="radio" name="second" value="0">
    ja
    <input type="radio" name="second" value="1">
    </p>
    <p>
    ';
    if ($second == 1){echo $addon;};

echo '
    <input type="reset" name="Zurücksetzen" value="Zurücksetzen">
    <input type="submit" name="Abschicken2" value="Abschicken">
  </p>
</form>
</body>
</html>
';
?>

Gruss
michel

  1. Hallo Michel,

    ...ich suche eine möglichkeit ein formular beim ausfüllen zu ändern, d.h. wenn radiobutton ($second)= 1 sollen zusätzliche felder erscheinen ($addon) , dies aber nicht erst beim drücken von absenden.
    ich habe dies schon vielerorts gesehen, doch habe keinen plan wie man das realisieren kann!

    vielleicht gehts so:

    <schnipp>
    <input type="radio" name="second" value="1" onChange="document.form1.submit()">
    </schnapp>

    viele Grüsse
    Kerstin

    1. Hi Kerstin,

      ...gute idee, klappt auch so halb...

      <schnipp>
      <input type="radio" name="second" value="1" onChange="document.form1.submit()">
      </schnapp>

      Das ganze funktioniert aber erst wenn ich den radiobutton zweimal gewechselt habe, beim ersten wechsel tut er nichts, auch wenn ich einen radion button auf "checked" setze...

      michel

      1. Hi Michel,

        ich bin ja auch dumm, sorry...so musses jetzt aber gehn ;-)

        <input type="radio" name="second" value="1" onClick="document.form1.submit()">
        </schnapp>

        Kerstin

        1. Hi Kerstin,

          <input type="radio" name="second" value="1" onClick="document.form1.submit()">
          </schnapp>

          ...cool so klappts! muss nur noch das checked abfangen, damit ich dann auch die richtigen daten am bildschirm und in der DB hab'.
          [...]
          input type="radio" name="second" value="1"';if ($second == 1){echo "checked";}; echo '  onClick="document.form1.submit()">
          [...]

          Danke
          michel

  2. Hi Michel,

    ...ich suche eine möglichkeit ein formular beim ausfüllen
    zu ändern, d.h. wenn radiobutton ($second)= 1 sollen
    zusätzliche felder erscheinen ($addon) , dies aber nicht
    erst beim drücken von absenden.

    wie wichtig ist Dir ein solcher Gimmick?

    In jedem Falle wirst Du nicht umhin können, dies durch eine client-seitige
    Lösung (JavaScript) zu realisieren. Falls dann die Nicht-Verfügbarkeit von
    JavaScript Dein Formular unbenutzbar machen sollte, dann war es die Sache
    möglicherweise nicht wert.

    ich habe dies schon vielerorts gesehen, doch habe keinen plan wie man
    das realisieren kann!

    Ansatz: Du definierst alle maximal notwendigen Formular-Elemente, setzt
    aber ihre Sichtbarkeit (CSS) dynamisch auf denjenigen Wert, den Du haben
    willst. Dazu brauchst Du Event-Handler der jeweiligen Formular-Elemente,
    deren Änderung Folgeeffekte auslösen sollen - und in der JavaScript-Funk-
    tion, die im Falle eines solchen Events aufgerufen wird, setzt Du dann
    die Sichtbarkeit der abhängigen Elemente um.

    Viel Spaß beim Programmieren
         Michael