js array an php übergeben

vandamp

Erfahrenes Mitglied
Hallo,

ich möchte aus einem Form, dass Checkboxen enthält, alle markierten mittels ajax Post übergeben.

Code:
function validate(form,UserID) {
var idlist = new Array;

with(document.getElementById(form)) {
     for(var i = 0; i < delmark.length; i++){
          if(delmark[i].checked) {
               idlist[i] = delmark[i].value;
               }
          }
}
if(idlist == "") {
alert("Wähle mindestens eine Nachricht aus.");
} else {
 if (confirm("Willst du diese Nachrichten wirklich löschen?") == true) {
	 alert(idlist); //schaut derzeit so aus (123,143)
	  $.post("work.php",{ action: "delmc", UserID : UserID, MID : idlist, a: form  } ) 
   }
   return;
}
return false;
}

irgendwie bekomme ich bei "MID : idlist" nie das ganze Array übergeben.
hat vielleicht jemand ne Idee, wie ich es anstellen könnte?
 
Mhm ja da es sich um ein JS Array handelt musst es erst serialisieren , oder anders gesagt in einen String umwandeln und das dann mit php wieder zerlegen.

so ne Form könnte man sich vorstellen:

"schlüssel:wert,schlüssel:wert ..." wenn es assoziativ war, wenn es nen normales war einfach "wert1, wert2 ... "

Dies kannst auf PHP seiten dann relativ einfach wieder in ein Assoziatives Array bzw Array umwandeln.
 
Danke,

klingt gut hätte ich auch drauf kommen können.
Nach ein bisschen goggeln ist es genau, was ich gesucht habe.
Habs jetzt zwar auf die schnelle nicht mehr hinbekommen, kann aber auch daran liegen, dass ich schon fast penne.:)
Werd mich morgen nochmal darum kümmern und ggf. meine Ergebnisse posten.

gute nacht
 
Hmm irgendwie denk ich dass ich etwas falsch mache

var idlist = idlist.serializ();?

wenn ich es so vor dem post mache klappt es nicht hat jemand ne Ahnung warum?

Gute nacht
 
Hi,

wenn sich in form die Referenz auf das Formular befindet, sollten die Formularelemente wie folgt serialisiert werden:
Code:
idlist = $(form).serialize();
Mehr zu serialize findest du in der jQuery-Dokumentation.

Ciao
Quaese
 
Zurück