ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
542
542
EMPFEHLEN
-
23.07.10 17:54 #1
- Registriert seit
- Oct 2008
- Beiträge
- 18
Hallo zusammen,
ich habe eine Funktion gebaut, mit der bei dem aktivieren diverser Checkboxen, jeweils eine neue Zeile, bestehend aus diversen Formularfeldern, eingefügt wird.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
<script type="text/javascript"> var RowID = 0; function AddRow(part_id,part_beschreibung,kategorie) { RowID++; var label = new Element('label', {'for': part_id + 'anzahl', 'style': 'display: block; width: 300px; height: 18px; float: left; line-height: 18px; padding-left: 5px; margin-right: 15px; background-color: #999999;'}).update(part_beschreibung); var input_anzahl = new Element('input', {'type': 'text','id': part_id + 'anzahl','name': part_id + 'anzahl'}); var input_preis = new Element('input', {'type': 'text','id': part_id + 'preis','name': part_id + 'preis'}); var remove_link = new Element('a', { 'class': 'foo', href: '#', onclick: 'RemoveRow(' + RowID + ')' }).update("entfernen"); var a = new Element('div', { 'id': 'feld' + RowID + '' }) $('Posten' + kategorie + 'List').insert ({'bottom' : a }); $('feld' + RowID).writeAttribute("style","border-bottom: 1px #999999 dotted; padding-top: 15px; padding-bottom: 15px;"); $('feld' + RowID).insert ({'bottom' : label }); $('feld' + RowID).insert ({'bottom' : input_anzahl }); $('feld' + RowID).insert ({'bottom' : input_preis }); $('feld' + RowID).insert ({'bottom' : remove_link }); $(part_id + 'anzahl').writeAttribute("value","test"); $(part_id + 'anzahl').writeAttribute("style","border: 1px #669900 solid; margin-right: 15px; width: 30px;"); $(part_id + 'preis').writeAttribute("value","test"); $(part_id + 'preis').writeAttribute("style","border: 1px #669900 solid; margin-right: 15px;"); } function RemoveRow(RowID) { $('feld' + RowID + '').remove(); } </script>
Funktioniert super das ganze. Nun möchte ich gerne, wenn das Formular abgesendet wird, die Daten in meiner PHP Datei verarbeiten. Da aber vorher nicht absehbar ist, wieviele Zeilen eingefügt werden, denke ich mal dass es am besten ist, ein mehrdimensionales Array zu erstellen. Dieses kann dann von meinem PHP-Script ausgelesen und weiterverarbeitet werden.
Nun ist die Frage wie ich in meinem Script ein Array erstelle. Da ich so etwas noch nie gemacht habe und mir Google auch nicht sonderlich weiterhelfen konnte wende ich mich nun an euch.
Danke
Gruß Sven
-
Moin,
ich würde dies über das name-Attribut der Inputs regeln.
Beispiel:
bisher->neu->Code :1
var input_anzahl = new Element('input', {'type': 'text','id': part_id + 'anzahl','name': part_id + 'anzahl'});
Code :1
var input_anzahl = new Element('input', {'type': 'text','id': part_id + 'anzahl','name': 'anzahl['+part_id+']'});
du solltest dann in PHP einen Request-Array anzahl erhalten, den du durchlaufen kannst(die part_id ist dabei der Key der Elemente, falls du diese benötigen solltest)
-
23.07.10 20:26 #3
- Registriert seit
- Oct 2008
- Beiträge
- 18
Hey Sven,
vielen Dank für deine produktive Antwort.
Nur sehe ich folgendes Problem, dass ich so die Felder (bis jetzt anzahl + preis) einander zugeordnet bekomme. Ich hatte mir das irgendwie so in der Art gedacht:
row[part_id][anzahl]
row[part_id][preis]
usw.
Ist das ein Denkfehler meinerseits?
Danke
Gruß Sven
-
So kannst du es auch machen, wenn es besser passt für dich

Code :1
var input_anzahl = new Element('input', {'type': 'text','id': part_id + 'anzahl','name': 'row['+part_id+'][anzahl]'});
-
23.07.10 20:55 #5
- Registriert seit
- Oct 2008
- Beiträge
- 18
OK. So habe ich mir das gedacht. Das Ding ist jetzt nur dass wenn ich das Array in meiner foreach-Schleife durchlaufen lasse, wird mir nur "ArrayArrayArray" ausgeworfen.
So sieht die Schleife aus:
Gibt es da was besonderes was ich beachten muss?PHP-Code:foreach( $row as $part_id => $s ) {
echo $s;
}
Gruß Sven
-
$s beinhaltet in deinem Fall ja wiederum einen Array mit den Elementen anzahl und preis, der Durchlauf müsste also so aussehen:
Code :1 2 3
foreach( $row as $part_id => $part ) { echo $part['anzahl'].'/'.$part['preis']; }
-
23.07.10 21:05 #7
- Registriert seit
- Oct 2008
- Beiträge
- 18
Ich danke Dir Sven. Ich beneide Dich um Dein Wissen. Damit kann ich jetzt weiterarbeiten. Also nochmal vielen vielen Dank.
Gruß Sven
Ähnliche Themen
-
Mehrdimensionales Array - zu - Eindimensionales Array (Mehrheit gewinnt)?
Von Blaafer im Forum PHPAntworten: 2Letzter Beitrag: 25.12.08, 07:07 -
mehrdimensionales array
Von Nadscha im Forum PHPAntworten: 12Letzter Beitrag: 17.07.07, 17:13 -
Mehrdimensionales Array zum einfachen Array imploden
Von Papenburger im Forum PHPAntworten: 5Letzter Beitrag: 30.04.07, 15:03 -
Mehrdimensionales Array
Von Texaner im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 17.11.03, 19:56 -
mehrdimensionales array
Von kimbo im Forum PHPAntworten: 2Letzter Beitrag: 26.10.03, 09:55





Zitieren
Login





