Ankündigung

Einklappen
Keine Ankündigung bisher.

Radiobuttons and PHP übergeben

Einklappen

Neue Werbung 2019

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

  • Radiobuttons and PHP übergeben

    Hallo alle zusammen, ich bin noch recht neu im Bereich php, was mir die Sache ungemein erschwert.

    Ich habe ein html Formular, von welchem aus ich mit Radiobuttons eine Auswahl treffen möchte um diese dann an ein php Skript zu übergeben.

    Allerdings klappt anscheinend nichtmal die Übergabe der Auswahl...

    der html Code sieht wie folgt aus.

    Code:
    <input type="Radio" name="Abfrage" value="Abfrage1" >   
    <input type="Radio" name="Abfrage" value="Abfrage2" >

    Dann versuche ich so die Auswahl abzurufen.


    PHP-Code:
    $Abfrage $_REQUEST['Abfrage'];
    echo 
    $_POST['$Abfrage']; 

    allerdings bekomme ich immer wieder gesagt, dass der Index nicht definiert wäre.

    Hoffe mir kann jemand helfen und danke schonmal.

  • #2
    PHP-Code:
    echo $_POST['Abfrage']; 
    Btw. -> Grundlagen lernen!

    Kommentar


    • #3
      Bitte beachten: http://www.php.de/php-einsteiger/489...nsammlung.html

      Kommentar


      • #4
        Radio-Buttons haben genau wie Checkboxen die "etwas unangenehme" Angewohnheit NICHT in den POST-Daten aufzutauchen, wenn sie nicht markiert (angekreuzt) sind ...

        demzufolge findet ein isset(...) dann NICHTS vor. Du musst nun entsprechend darauf reagieren .. = "diese Checkbox ist nicht angekreuzt"

        ODER du machst dir eine Eigenheit von html-Formularen und POSt-Daten zu Nutze .. "gleichnamige Elemente überschreiben einander" ...

        dafür baust du in dein Form-Element VOR einem Radio-Button oder Checkbox jeweils ein Hidden-Feld ein, dass aber das gleiche Name-Attribut wie der Radiobutton bzw die Checkbox bekommt .
        Den Value-Wert dieses Hiddenfeldes setzt du auf einen geeigneten Wert (zum Beispiel Radio-Button = "ON" Hidden-Feld="OFF" )

        dann passiert folgendes : Beim Abschicken des Formulars landen die Daten in $_POST - dabei eben zuerst das Hidden-Feld, ist nun der Radio-Button / Checkbox angekreuzt, wird der Wert in $_POST ÜBER das Hidden-Feld geschrieben .. falls nicht, bleibt halt der Hidden-Wert bestehen

        Folge isset findet in jedem Fall was zum Vergleichen ... und du keine Fehlermeldung wegen fehlendem Index

        Kommentar


        • #5
          Hö? Ich hab error_reporting(E_ALL) und ini_set('display_errors', '1') und bei mir kommt keine Fehlermeldung wenn ich die Checkbox in Ruhe lasse :O

          Kommentar


          • #6
            die Frage ist welche ? .. beide Input-Elemente haben den gleichen Name-Attribut - die übertschreiben sich also in den Post-Daten (die 2te würde die 1te Überschreiben) .. evtl sollte man die mal als Array definieren

            HTML-Code:
            <input type="Radio" name="Abfrage[]" value="Abfrage1">

            Kommentar


            • #7
              Zitat von eagle275 Beitrag anzeigen
              beide Input-Elemente haben den gleichen Name-Attribut - die übertschreiben sich also in den Post-Daten (die 2te würde die 1te Überschreiben) .. evtl sollte man die mal als Array definieren
              Eventuell solltest du dich mal informieren, was Radiobuttons eigentlich sind

              Kommentar


              • #8
                ich weiß, was Radio-Buttons sind .. interessanter dürfte sein, in welcher Situation er den Fehler mit dem fehlenden Index bekommt - nämlich wenn er das Formular ohne anklicken eines der Radio-Buttons abschickt (dass sollte dazu führen, dass KEINER der Radio_buttons aktiv ist ) ....

                Kommentar


                • #9
                  Zitat von eagle275 Beitrag anzeigen
                  ich weiß, was Radio-Buttons sind ..
                  Dann duerfte dir aber auch klar sein, dass das, was ich gerade von dir zitiert habe, Unsinn war.

                  Kommentar


                  • #10
                    ich mag mich jetzt nicht streiten .. aber ich denke dass meine Aussage schon richtig ist - vielleicht nicht der Nebensatz

                    letztlich ist wohl nirgendwo genau dargelegt, wie die POST-Daten die Auswahl des richtigen Radio-Buttons reflektieren - meiner Meinung nach nach genau dem gleichen Mechanismus, wie sonst bei Formular-Elementen auch.. Elemente mit gleichem Namen überschreiben einander in den POST-Daten - Elemente, die nicht aktiv sind (bei Checkbox / Radiobutton) landen nicht darin ... - passt jedenfalls genau zum Verhalten.
                    Bleibt der Fall, dass keiner der Radiobuttons auf "an" initialisiert wird (checked="checked" ) und das Formular "so" abgeschickt wird -> ergo undefined Index

                    Kommentar


                    • #11
                      Sorry, mein Fehler.

                      Also es ist sichergestellt, das nicht mehr als einer der Radiobuttons ausgewählt werden kann.
                      Desweiteren ist sichergestellt, dass mindestens einer ausgewählt ist(wenn der User nichts macht, dann halt die vorauswahl).

                      Selbst, wenn ich versuche mit REQUEST die Daten aus dem Formular zu holen sagt er weiterhin "Undefined index"
                      PHP-Code:
                      $Abfrage $_REQUEST['Abfrage'];
                      echo 
                      '$Abfrage'
                      EDIT: als nachschub, ich will nur wissen, welcher Button aktiviert wurde und am besten von diesem Button die Value übergeben.

                      Kommentar


                      • #12
                        hm dann schau doch mal nach, was Post so mitbringt

                        PHP-Code:
                        echo '<pre>';
                        var_dump($_POST);
                        echo 
                        '</pre>'
                        und dein echo '$Abfrage'; gewöhnst du dir bitte gleich ab ..

                        echo $Abfrage; da brauchts keine zusätzlichen Quotes, obendrein ersetzt PHP in Single-Quotes keine Variablennamen durch ihren Wert

                        Kommentar


                        • #13
                          Zitat von eagle275 Beitrag anzeigen
                          ich mag mich jetzt nicht streiten .. aber ich denke dass meine Aussage schon richtig ist
                          Nein, ist sie nicht.
                          letztlich ist wohl nirgendwo genau dargelegt, wie die POST-Daten die Auswahl des richtigen Radio-Buttons reflektieren
                          http://www.w3.org/TR/1999/REC-html40...rms.html#radio
                          http://www.w3.org/TR/1999/REC-html40...html#h-17.13.2

                          Elemente mit gleichem Namen überschreiben einander in den POST-Daten
                          Es gibt aber im Falle von Radiobuttons mit gleichem Namen nur einen einzigen, der ueberhaupt in den Parametern landet - das ist ja der Sinn von Radiobuttons.

                          Kommentar


                          • #14
                            Sonst bringt er nichts mit, ich kann nur nicht ganz nachvollziehen weshalb...

                            Code:
                            array(0) {
                            }

                            Kommentar


                            • #15
                              hm .. hast du das Formular überhaupt mit method="post" erstellt ? und einmal abgeschickt ?

                              OK chris... hast ja recht

                              Kommentar

                              Lädt...
                              X