brainatwork: textfeld als value eines radiobuttons

guten morgen :)
so nachdem ich jetzt seit zwei stunden such und ausnahmsweise mal nich gefunden hab was ich such frag ich mal euch :)

formular mit frage und dazugehörigen 4 radiobuttons ..
radio 1 bis drei sind vorgegeben antworten
und 4 soll beim senden den wert eines dahinterstehenden textfeldes übergeben

*hundeblick* ich kann doch kein javascript und das hat doch bestimmt schon mal jemand gemacht

gruss kuss schluss

  1. Hallo,

    radio 1 bis drei sind vorgegeben antworten
    und 4 soll beim senden den wert eines dahinterstehenden textfeldes übergeben

    das tut das Formular doch ohnehin - egal, ob der davorstehende Radiobutton aktiviert ist oder nicht.

    *hundeblick* ich kann doch kein javascript und das hat doch bestimmt schon mal jemand gemacht

    Was genau möchtest Du denn mit Javascript tun?

    Ciao,
    Andreas

    --
    "No, Sir, I don't like it." - (Mr. Horse)
    1. danke erstma und ..
      javascript war nur sone idee, dsa war das einzige was mir übern weg gelaufen is womit funktionieren könnte

      und nochmal ganz genau was es werden soll:

      ()antwort1
      ()antwort2
      ()antwort3
      ()________[eigene antwort eingeben]

      und es soll halt nur eins möglich sein

      und ich wollte nich erst noch ne abfrage einbauen ob des feld angeklickt is oder so ähnlich und dann die variable auf das textfeld setzen etc.

      weil von der sorte hab ich eins, zwei, viele fragen
      und vorher noch ne menge 'normale' radiobuttons
      und dann will ich des einfach mittels php mailen

      gruss kuss schluss ich muss

      1. Hallo,

        abgesehen von Siechfrieds Hinweis - ich habe, da gerade etwas Luft, mal rasch dies zusammengeschustert (Achtung: das ist nur mal eben zusammengejammt):

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <title>Unbenanntes Dokument</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script type="text/javascript">
        function activateUserInput(inputObj) {
         var radioObjColl = inputObj.parentNode.parentNode.getElementsByTagName('input');
         for(var i=0; i<radioObjColl.length; i++) {
          radioObjColl[i].checked = false;
          if(i == 0) {
           var inputObj = inputObj.parentNode.parentNode.getElementsByTagName('textarea')[0];
           var nameString = radioObjColl[i].name + '_user';alert('nameString: '+nameString);
           inputObj.setAttribute("name", nameString);
           inputObj.style.backgroundColor = '#fff';
          }
         }
        }
        function deactivateUserInput(radioObj) {
         var inputObj = radioObj.parentNode.parentNode.getElementsByTagName('textarea')[0];
         inputObj.removeAttribute("name");
         inputObj.style.backgroundColor = '#efefef';
        }
        </script>
        </head>

        <body>
        <p>
        <?php
         while(list($key, $val) = each($_POST)) {
          echo $key.' = '.$val.'<br />';
         }
        ?>
        </p>

        <form action="formtest.php" method="post">
         <fieldset>
          <legend>Auswahl foo</legend>
          <p><label for="foo_0">Option 1</label>: <input id="foo_0" name="foo" type="radio" value="value_0" onchange="deactivateUserInput(this);" /></p>
          <p><label for="foo_1">Option 2</label>: <input id="foo_1" name="foo" type="radio" value="value_1" onchange="deactivateUserInput(this);" /></p>
          <p><label for="foo_2">Option 3</label>: <input id="foo_2" name="foo" type="radio" value="value_2" onchange="deactivateUserInput(this);" /></p>
          <p><label for="foo_user">Benutzereingabe</label>: <textarea id="foo_user" name="foo_user" cols="10" rows="3" onfocus="activateUserInput(this);"></textarea></p>
         </fieldset>
         <p><input type="submit" value="Absenden" /></p>
        </form>
        </body>
        </html>

        Ciao,
        Andreas

        --
        "No, Sir, I don't like it." - (Mr. Horse)
        1. Hallo,

          var nameString = radioObjColl[i].name + '_user';

          var nameString = radioObjColl[i].name;

          <textarea id="foo_user" name="foo_user" cols="10" rows="3" onfocus="activateUserInput(this);"></textarea>

          <textarea id="foo_user" name="foo" cols="10" rows="3" onfocus="activateUserInput(this);"></textarea>

          Dann bekommst Du immer das POST-Datum "foo" am Server - egal ob es nun eine Standardoption oder eine benutzereingabe ist.

          Ciao,
          Andreas

          --
          "No, Sir, I don't like it." - (Mr. Horse)
          1. danke und ich werd das heut mal testen ...

            mal sehen obs funktioniert, bin da noch bissel skeptisch, weil das ganze über über serendipity läuft und des manchmal schwierigkeiten macht wenn man was im <head>-tag einfügen will

            bis denn :)
            gruss kuss schluss

  2. Hell-O!

    formular mit frage und dazugehörigen 4 radiobuttons ..
    radio 1 bis drei sind vorgegeben antworten
    und 4 soll beim senden den wert eines dahinterstehenden textfeldes übergeben

    Variante 1: Gib der Textarea nur dann einen Namen, wenn der Radiobutton ausgewählt wurde.
    Variante 2: Entferne das name-Attribut der Textarea, wenn der Radiobutton nicht ausgewählt wurde.

    Variante 2 würde ich vorziehen, da so auch User ohne JS das Formular benutzen können, da die Textarea hier mit übermittelt wird. User ohne JS könnte man durch ein verstecktes Eingabefeld in einem noscript-Bereich identifizieren, die Prüfung, ob die Textarea zu Recht übermittelt wurde, hat dann serverseitig zu erfolgen.

    Siechfred

    --
    Hier könnte Ihre Werbung stehen.
    Räucherofen selber gebaut || Das Steuerblog  || RT 221 Erfurt-Altstadt i.V.