PHP-Array von Checkboxes über Prototype

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

  • PHP-Array von Checkboxes über Prototype

    Hallo ihr Javascript-Profis,

    Ich habe mal wieder eine Frage an alle Prototype oder allgemein JS-Profis hier. Ich lese Werte aus der DB, diese gebe ich mit einer Checkbox aus (die Checkbox enthält den Primary-Key).

    Jetzt möchte ich das man mehrere Checkboxen auswählen kann und wenn man den Submit-Button betätigt das an die test.php-Datei gesendet wird (per Ajax.Updater - Prototype). Das Problem, beim PHP-Script kommt nicht das gewünschte Array, das man bei einem normalen Submit hätte an, sondern was anderes. Wie bekomme ich nun ein Array im PHP-Script à la:

    Code:
    Array(
    [0] => 5
    [1] => 6
    [2] => 10
    )
    Hier mal kurz meine Funktion. Die Checkboxen haben den "name" "genres[]":
    Code:
    function genres_save() {
    	new Ajax.Updater('genretest', 'genres.php', { method: 'post',parameters: {module: "save", genres: Form.getElements("genres") } });
    }

  • #2
    Wie sieht denn der Request aus, der von deinem Code generiert wird? (Bspw. mittels FireBug überprüfen.)

    Sofern Form.getElements wirklich das gewünschte liefert (habe nach kurzem Blick in die Doku leichte Zweifel, arbeite allerdings auch nicht mit prototype) - dann müsste der Name, unter dem die Parameter übergeben werden m.E. trotzdem noch angepasst werden, denn ohne eckige Klammern generiert PHP kein Array, sondern überschreibt mehrere Parameter gleichen Namens mit dem jeweils letzten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Naja ich bin mir überhaupt nicht sicher, ob Form.getElements() das gewünschte Resultat liefert. Ich denke mal nicht, weil ich bekomme dann immer etwas in der Art:

      Code:
      [Object HTMLInputElement] x Anzahl Checkboxes
      Deshalb würde mich mal interessieren, was man bei Prototype nutzen muss, damit das in PHP richtig ankommen würde. Oder auch JS naitiv, wie bekomme ich mittels JS naitiv ein Array, das ich dann per Ajax.Request als Parameter mitsenden kann? Ich könnte natürlich auch einfach überprüfen, ob die Checkbox aktiviert ist (foreach oder sowas in JS) und dann das in ein Array speichern und dann mittels JSON das Array an PHP weiterreichen, aber es muss doch eine Funktion geben, dass man einfach das Array für PHP bekommt, wie es ganz normal bei einem Submit erstellt wird.
      Zuletzt geändert von pascal007; 14.05.2009, 07:32.

      Kommentar


      • #4
        Du brauchst nicht Form.getElements sondern Form.serialize.

        Kommentar


        • #5
          Oke danke, das mit serialize sieht ja schon mal ganz gut aus.

          $("whatever").serialize(true) ist genau das was ich gseucht habe.

          Kann ich nun aber keine Parameter mehr direkt per Ajax senden, sondern muss sie über hidden-Fields im Formular mitsenden? Weil serialize(true) ersetzt ja eigentlich die Parameter Struktur. Naja halb so wild .

          Kommentar


          • #6
            Du kannst doch alles weitere mit in das zurückgegebene Objekt hineinpacken, was du willst. Oder mit Object.extend direkt zwei Objekte miteinander verknüpfen.

            Kommentar

            Lädt...
            X