Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular mehrere Submit Buttons - Safari

Einklappen

Neue Werbung 2019

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

  • Formular mehrere Submit Buttons - Safari

    Hallo,

    ich stoße immer wieder auf das Problem, dass ich ein Formular habe, bei dem ich über Graphiken Buttons mit spezifischen Informationen übermitteln möchte und irgendwo gibt es immer einen Browser oder eine andere Ursache, die mir in die Parade fährt.

    In diesem speziellen Fall ist es Safari, der die POST Daten nicht überträgt.

    Ich kann also mehrere Button (<input type=image...) einbauen und bekomme auch den value Wert übermittelt, doch in Safari bleiben die Informationen in $_POST leer. Ich kann mir $_POST ausgeben und sehe für jedes Formularfeld den passendenden Array Eintrag, doch es werden einfach keine Werte übertragen (In FireFox klappt das).



    Wem das zu abstrackt ist:

    Hintergrund:

    Ich habe ein sehr umfangreiches Formular in zwei Hälften geteilt. Links eine Liste von Grundfarben und rechts eine Liste von Kombinationsfarben die pro Zeile weitere Informationen enthält, also aus Formular-Text Feldern besteht, um eine Anzahl einzugeben.

    Die Farben sollen jeweils kombiniert werden und da die Liste viel zu lang werden würde habe ich die 16 Grundfarben links zu Button umfunktioniert, so dass nach einem Klick auf diese Farben nur die Kombiliste für diese eine Grundfarbe erscheint. Die Kombiliste besteht aus weiteren 32 Farben und wird rechts mit 8 weiteren Spezifikationen (die erwähnten Eingabefelder) aufgerufen.

    Ich kann also jetzt jede Grundfarbe mit jeder Spezifikation beliebig kombinieren.

    Die linken Farben habe ich graphisch dargestellt und über ein <input type=image eingebunden. Da sich die rechte Liste austauschen soll, wenn man eine Grundfarbe wählt übertrage ich die Info von dem jeweiligen Grundfarbenbutton und bekomme dann zum einen die jeweilige Kombiliste rechts angezeigt und hinterlege alles vorher ausgewählte in hidden input Felder.

    Das klappt alles wunderbar, sogar das mit den Button Informationen, also welchen der 16 Buttons ich gedrückt habe klappt. Doch die Übertragung der POST Informationen klappt in Safari nicht - $_POST bleibt leer.


    Zusammenfassung:

    Ich möchte ein Formular mit mehreren Buttons abschicken und je nach dem welchen Button ich auswähle soll diese Information von dem Button ebenfalls übertragen werden.

    Gruss

    Lars

  • #2
    Stelle bitte ein auf's wesentliche reduziertes, valides Online-Beispiel bereit, welches in der Antwort die übergebenen POST-Werte zur Kontrolle ausgibt;
    und teile uns bitte auch mit, welche Browserversion unter welchem OS du nutzt.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Hi,

      Code:
      <form action="<? print $_SERVER['PHP_SELF']; ?>" method="POST" enctype="application/x-www-form-urlencoded">
      
      <input type="image" src="http://www.php.de/images/small/orx_001-034.jpg" onClick="javascript:submit();" name="show[1][]" value="1">
      <input type="image" src="http://www.php.de/images/small/orx_002-034.jpg" onClick="javascript:submit();" name="show[2][]" value="1">
      <input type="image" src="http://www.php.de/images/small/orx_003-034.jpg" onClick="javascript:submit();" name="show[3][]" value="1">
      
      
      /* Aufruf mit show[1] */
      <input type="text" name="xan1[orx_001-001]" value="">
      <input type="text" name="xan2[orx_001-002]" value="">
      <input type="text" name="xan3[orx_001-003]" value="">
      <input type="text" name="xan4[orx_001-004]" value="">
      ...
      <input type="text" name="xan4[orx_001-034]" value="">
      
      /* Aufruf mit show[2] */
      <input type="text" name="xan1[orx_002-001]" value="">
      <input type="text" name="xan2[orx_002-002]" value="">
      <input type="text" name="xan3[orx_002-003]" value="">
      <input type="text" name="xan4[orx_002-004]" value="">
      ...
      <input type="text" name="xan4[orx_002-034]" value="">
      
      </form>

      Es soll, je nach dem welcher Submit Button gedrückt wird, sich die input-Liste jeweils mit den ersten drei Ordnungsziffern aufbauen. Und jedes ausgefüllte Feld wird als hidden Feld erneut in das Formular geschrieben, damit die Auswahl weiter getragen wird.

      Ich habe das Formular unter Mac OS X mit FireFox entwickelt und wollte das dann auf Safari testen. Dort wurden zwar nach ein paar Handgriffen die Butten-Werte erfolgreich übertragen und ausgelesen, allerdings bleiben die xan-Werte leer. Ausgelesen habe ich die wie folgt:

      $_POST[xan1][orx_001-001];

      bzw.

      print_r($_POST) zeit mir das komlette Array an und im FireFox werden die eingetragenen Daten übergeben und angezeigt und im Safari nicht.

      FireFox unter Windows klappt ebenfalls, IE 7 unter Windows XP leider auch nicht.

      Gruss

      Lars

      Kommentar


      • #4
        Beim Posten bitte bbCode für Quellbeispiele verwenden und Code einrücken.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Bei mir läuft dein Beispiel im Safar (4.0) ohne Probleme. IE habe ich gerade nicht zur Hand. Kann mich aber dunkel daran erinnern, dass der IE unter Umständen Felder nicht mitsendet, die im Code erst nach dem Submit-Button stehen.

          Vielleicht ist das zumindest mal ein Ansatz den du ausprobieren kannst: Submit-Buttons mal ganz ans Ende schieben.
          [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

          Kommentar


          • #6
            Zitat von agrajag Beitrag anzeigen
            Bei mir läuft dein Beispiel im Safar (4.0) ohne Probleme. IE habe ich gerade nicht zur Hand. Kann mich aber dunkel daran erinnern, dass der IE unter Umständen Felder nicht mitsendet, die im Code erst nach dem Submit-Button stehen.

            Vielleicht ist das zumindest mal ein Ansatz den du ausprobieren kannst: Submit-Buttons mal ganz ans Ende schieben.

            Hi,

            sehr interessant, wenn das reduzierte Beispiel bei dir funktioniert, dann habe ich im Beiwerk irgendwo einen Fehler.

            Das mit den Submit-Buttons am Ende klappt nicht, wäre aber für mich auch keine Lösung, da das Formular eine Abbildung eines anderen Formulars ist und die Plätze quasi damit vorgeschrieben sind.

            Mit Datenbank und anderen Abläufen wäre das alles auch kein Problem, es ist eben der Versuch ohne Datenbank auszukommen...

            Gruss

            Lars

            Kommentar

            Lädt...
            X