Dynamisch erstellte Radiobuttons weiterverarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dynamisch erstellte Radiobuttons weiterverarbeiten

    Hallo!

    Ich habe folgendes Problem.
    Ich erstelle dynamisch aus einer DB ein Formular mit Radiobuttons.

    PHP-Code:
    $x mysql_real_escape_string($_POST["kurs"]); 

    $abfrage "SELECT $x FROM lehrende"
    $ergebnis mysql_query($abfrage) or die("MySQL-Fehler: " mysql_error()); 
    while(
    $row mysql_fetch_array($ergebnis)) 
    {   
       
    $rname $row[0];
       
    $rFrage $rname."Frage";
       echo 
    "$rname
      <table>
       <tr><td>Unterrichtsvorbereitung</td> 
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"1\"></td>
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"2\"></td>
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"3\"></td>
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"4\"></td>
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"5\"></td>
       <td><input type=\"radio\" name=\"
    $rFrage\" value=\"6\"></td>
       </tr></table>"
    ;
       
    /** Variable die alle Namen enthält **/
       
    $rnameall $rnameall."+".$rname;
    }
    echo 
    "<input type=\"hidden\" name=\"namesall\" value=\"$rnameall\">"
    Ich möchte den jeweiligen name + value des Radiobuttons dem jeweiligen Array-Eintrag zuordnen und dann entsprechend weiterverarbeiten (im Endeffekt soll's wieder in die Datenbank geschrieben werden).
    Sollte auch funktionieren, allerdings werden manche Variablen nicht
    gefunden und ich komm' auf den Fehler nicht drauf:

    Notice: Undefined variable: rnameall in C:\Programme\xampp\htdocs\test\include.php on line 37

    Ausgabe:

    PHP-Code:
    $namesall $_POST['namesall'];
    $allenamenarray explode("+"$namesall);
    foreach(
    $allenamenarray as $name){
     echo 
    "Name: ".$name;
     
    $fieldname $name."Frage"
     
    $wert $_POST[$fieldname];
     echo 
    "Wert: ".$wert;

    Notice: Undefined index: Frage in C:\Programme\xampp\htdocs\test\formular.php on line 15

    Dürfte nur ein kleiner Fehler im Skript sein, finde ihn aber leider nicht

  • #2
    Sollte auch funktionieren, allerdings werden manche Variablen nicht
    gefunden und ich komm' auf den Fehler nicht drauf:

    Notice: Undefined variable: rnameall in C:\Programme\xampp\htdocs\test\include.php on line 37
    dass die variable nicht deklariert ist, solltest du doch sehen?

    wo soll sie denn herkommen? aus der datenbank? dann wird sie irgendwo in $row drin sein.
    Notice: Undefined index: Frage in C:\Programme\xampp\htdocs\test\formular.php on line 15
    mach mal ein print_r() auf dein $namesall - du wirst sehen, dass es den index "Frage" tatsächlich nicht gibt.

    Kommentar


    • #3
      Re: Dynamisch erstellte Radiobuttons weiterverarbeiten

      Stehen die Namen so im erzeugten HTML-Code, wie du es erwartest?

      Welche Erkenntnis kam dir, nachdem du dir den Inhalt von $_POST mittels print_r/var_dump zur Kontrolle hast ausgeben lassen?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Die Erkenntnis das der index "Frage" nicht existiert.
        Aber die Definition der Variable $rFrage
        PHP-Code:
        $rFrage $rname."Frage"
        ist doch korrekt, oder?

        Kommentar


        • #5
          syntaktisch - ja.

          Kommentar


          • #6
            Ok, angenommen ich setze direkt den Array-Eintrag in das name-Attribut ein.

            PHP-Code:
            <input type=\"radio\" name=\"$rname\" value=\"1\"> 
            Selbst dann schaffe ich es nicht mir das Feld + value auszugeben, da der index weiterhin nicht gefunden wird.
            Dachte dass ich mich in PHP doch halbwegs durchblicke, anscheinend doch nicht .

            Kommentar


            • #7
              irgendwie hochgradiger unfug...
              schau dir tut.php-q.net/formulare.html an. komplett.
              und peterkropff.de

              Kommentar


              • #8
                An und für sich geht es ja:

                PHP-Code:
                array(4) {
                  [
                "Name1Frage"]=>
                  
                string(1"3"
                  
                ["Name2Frage"]=>
                  
                string(1"3"
                  
                ["Name3Frage"]=>
                  
                string(1"6"
                  
                ["namesall"]=>
                  
                string(55"+Name1+Name2+Name3"

                Das Problem dürfte also beim korrekten Auslesen liegen?!

                Kommentar


                • #9
                  Original geschrieben von knallbernd
                  PHP-Code:
                  foreach($allenamenarray as $name){ 
                  Direkt darunter als erste Anweisung ergänzen:
                  PHP-Code:
                     echo 'aktueller Name ist #'.$name."#<br>\n"
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Mmh... das Problem liegt nicht beim Auslesen der Namen sondern
                    vielmehr der dazugehörigen Werte, die im Endeffekt zum dem entsprechenden Namen in die DB geschrieben werden sollen (das ist dann kein Problem mehr, müsste mal nur zu den Werten kommen...).

                    Kommentar


                    • #11
                      Original geschrieben von knallbernd
                      Mmh... das Problem liegt nicht beim Auslesen der Namen sondern [...]
                      Hör auf, wild rumzuraten.

                      Hast du meinen Tipp befolgt? Was ist dabei herausgekommen?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        string(55) "+Name1+Name2+Name3"
                        dann zeig mal bitte, wie du (stell dir vor - du bist explode('+', ...)) diesen string auswertest.

                        Kommentar


                        • #13
                          Ok, hab's jetzt geschafft.
                          Folgendermaßen:

                          PHP-Code:
                          foreach ($_POST['Frage'] as $name=>$value) {
                                echo 
                          "Name: {$name} <br />";
                                echo 
                          "Wert: ".$value;
                              } 
                          Bin ziemlich lange blöd gesessen um das hinzubekommen.
                          Deswegen bitte ich nur noch um eine kleine Hilfestellung.

                          Ist es möglich 'Frage' als Array zu behandeln (also praktisch ein Array mit Arrays)? In diesem sollte Frage1, Frage2, Frage3 ($POST) enthalten sein damit ich in der foreach-Schleife damit weiterarbeiten kann. Bitte nur um einen kurzen Hinweis ob ich da am richtigen Weg bin...

                          Kommentar


                          • #14
                            ja.

                            Kommentar


                            • #15
                              Sehr gut :-).
                              Im Ernst... arbeite mich grad bei http://tut.php-q.net/array.html durch
                              und hoffe dass ich mich wieder melden darf falls ich's nicht gebacken krieg'.

                              Kommentar

                              Lädt...
                              X