Frage zu java und php

Hallo!
Wer kann mir vielleicht auf die Sprünge helfen. Ich habe einen Warenkorb der mit javascript erstellt ist. Meine Frage ist, wie ich die die Daten aus dem Formular an php übergebe muß, um sie zu versenden. Oder besser gesagt, wie müßte das Script aussehen. Ich wäre Euch sehr dankbar!!!

Hier mal das javascript:

<!–
var gesamtpreis=0;
for (i in items) {
if (items[i][3] > 0) {

document.write(’<TR><TD>’ +items[i][3]+ ‚</TD>\n‘);
document.write(’<TD>’ +items[i][0]+ ‚</TD>\n‘);
document.write(’<TD>’ +items[i][1]+ ‚</TD>\n‘);
document.write(’<TD>’ +items[i][2]+ ‚</TD>\n‘);
document.write(’<TD ALIGN=„Right“>’ +rechnen()+ ’ EUR</TD></TR>\n’);

}
}
document.write(’<TR><TD ALIGN=„Right“ COLSPAN=4><b>Versand:    </b></TD><TD ALIGN=„Right“><b>’ +versand()+ ’ EUR</TD>’);
document.write(’<TR><TD ALIGN=„Right“ COLSPAN=4><b>Gesamtsumme:    </TD><TD ALIGN=„Right“><b>’ +gesamt()+ ’ EUR</b></TD>’);
document.write(’</TR></TABLE>’);

for (i in items) {
if (items[i][3] > 0) {
document.write(’<INPUT TYPE=„HIDDEN“ NAME=„order’ +i+ '“ VALUE="’ +items[i][3]+ ‚">‘);
document.write(’<INPUT TYPE=„HIDDEN“ NAME=„order’ +i+ '“ VALUE="’ +items[i][0]+ ‚">‘);
document.write(’<INPUT TYPE=„HIDDEN“ NAME=„order’ +i+ '“ VALUE="’ +items[i][1]+ ‚">‘);
document.write(’<INPUT TYPE=„HIDDEN“ NAME=„order’ +i+ '“ VALUE="’ +items[i][2]+ ‚">‘);
document.write(’<INPUT TYPE=„HIDDEN“ NAME=„order’ +i+ '“ VALUE="’ +rechnen()+ ’ EUR">’);

}
}

//–>

Hallo speedy,

schwer Dir zu helfen.
Im script selbst habe ich keine Fehler gesehen.
Die Daten werden in eine Tabelle und in Hidden-Feldern des Formulars geschrieben.
(Ob und welche Daten im Array und durch die functionen erzeugt/ausgegeben werden ist ja nicht zu sehen)

Wie wird das Formular versendet?
Kommt nach dem Scriptbereich und vor dem form-endtag noch ein Submit-Button?

h♥rzlichen Gruß
Nitya

Wie wird das Formular versendet?
Kommt nach dem Scriptbereich und vor dem form-endtag noch ein
Submit-Button?

Ich dachte auch schon er will eigentlich ajax nutzen , aber bleiben wir mal beim normalen versand von input feldern.

h♥rzlichen Gruß
Nitya

Laut seinen Input write daten erzeugt er einige orders und die haben jeweils einige positionen .

Ich hab dafür mal ein beispiel gemacht , wie man es machen könnte .

Order 1 : position 1 + 2 +3 +4 + summe
Order 2 : position 1 + 2 +3 +4 + summe
Order 3 : position 1 + 2 +3 +4 + summe

Beispiel

http://legioneuropa.le.ohost.de/test/php/form_read_a…

code :

<?php // formular senden empfangen ausgeben
?\>formular array senden empfangen ausgeben<?php // sind POST DATEN da
if (isset($\_POST['ordercount'])) { // postendaten holen // input felder mit [] erzeugen ein array for ($i=1; $i $odername = 'order'.$i; // order feldname erzeugen ( aufsteigend ) $orders = $\_POST[$odername]; // nun sind alle werte für orderX in $orders[0],$orders[1],.... var\_dump($orders); echo " "; } } else { // keine Postdaten also Formular ausgabe ?\> var gesamtpreis=0; var items = new Array(10); for (var i = 0; i \< items.length; ++i) { items[i] = new Array(10); for (var ii = 0; ii \< items[i].length; ++ii) { items[i][ii] = i\*ii; } } document.write('\'); for (i in items) { if (items[i][3] \> 0) { document.write('\\' +items[i][3]+ '\\n'); document.write('\' +items[i][0]+ '\\n'); document.write('\' +items[i][1]+ '\\n'); document.write('\' +items[i][2]+ '\\n'); document.write('\' + summe(i) + ' EUR\\\n'); } } document.write('\\\Versand    \\\\10 EUR\'); document.write('\\\Gesamtsumme    \\\' + gesammt(10) + ' EUR\\'); document.write('\\'); for (i in items) { if (items[i][3] \> 0) { // hier order nicht durchnummerieren sondern lieber als array also [] hinten ran document.write('\'); document.write('\'); document.write('\'); document.write('\'); document.write('\'); } } function summe(i){ return items[i][3]+items[i][0]+items[i][1]+items[i][2]; } function gesammt(versand) { var wert = 0 ; for (i in items) { wert += items[i][3]+items[i][0]+items[i][1]+items[i][2]; } return wert+versand; } // ein button zum senden . // wieviele orders document.write('\'); document.write('\'); <?php }
?\><?php // formular senden empfangen ausgeben
?\>formular array senden empfangen ausgeben<?php // sind POST DATEN da
if (isset($\_POST['ordercount'])) { // postendaten holen // input felder mit [] erzeugen ein array for ($i=1; $i $odername = 'order'.$i; // order feldname erzeugen ( aufsteigend ) $orders = $\_POST[$odername]; // nun sind alle werte für orderX in $orders[0],$orders[1],.... var\_dump($orders); echo " "; } } else { // keine Postdaten also Formular ausgabe ?\> var gesamtpreis=0; var items = new Array(10); for (var i = 0; i \< items.length; ++i) { items[i] = new Array(10); for (var ii = 0; ii \< items[i].length; ++ii) { items[i][ii] = i\*ii; } } document.write('\'); for (i in items) { if (items[i][3] \> 0) { document.write('\\' +items[i][3]+ '\\n'); document.write('\' +items[i][0]+ '\\n'); document.write('\' +items[i][1]+ '\\n'); document.write('\' +items[i][2]+ '\\n'); document.write('\' + summe(i) + ' EUR\\\n'); } } document.write('\\\Versand    \\\\10 EUR\'); document.write('\\\Gesamtsumme    \\\' + gesammt(10) + ' EUR\\'); document.write('\\'); for (i in items) { if (items[i][3] \> 0) { // hier order nicht durchnummerieren sondern lieber als array also [] hinten ran document.write('\'); document.write('\'); document.write('\'); document.write('\'); document.write('\'); } } function summe(i){ return items[i][3]+items[i][0]+items[i][1]+items[i][2]; } function gesammt(versand) { var wert = 0 ; for (i in items) { wert += items[i][3]+items[i][0]+items[i][1]+items[i][2]; } return wert+versand; } // ein button zum senden . // wieviele orders document.write('\'); document.write('\'); <?php }
?\>

so wie der form-tag definiert wird, hatte ich erstmal an normalen Versand gedacht.

Nach nochmaliger Durchsicht habe ich dann auch gesehen,
dass hier ja immer der gleiche NAME vergeben wird:


document.write(’

Und da liegt dann der/ein Fehler!!

Man Ihr seit ja mal echt klasse. Auch wenn was hier nicht funktioniert aber ich macht euch so viel Mühe, einfach Sahne!!!

Ja das ist mein Problem ich bekomme das nicht hin weil es immer die gleichen Namen sind. Das muß ja auch so sein weil es nicht nur einen Artikel gibt sondern event. mehrere wie in einer Tabelle.

Ne halt!!! mein fehler das „hidden“ also das versteckt soll nicht seien beim Versand also eigentlich sollte das „text“ stehen Sorry. Und unterhalb ist dann natürlich der button „submit“ Mein Fehler!

danke

dann schreibe es doch mal der Einfachheit halber so:


if (items[i][3] > 0) {
document.write(’’);
document.write(’’);
document.write(’’);
document.write(’’);
document.write(’’);
}

Jedenfalls bekommst Du so alle Formular-Daten.

Man Ihr seit ja mal echt klasse. Auch wenn was hier nicht
funktioniert aber ich macht euch so viel Mühe, einfach
Sahne!!!

Was ist hier und was funktioniert nicht ??? Seh ich das , weiss ich das ??

Ja das ist mein Problem ich bekomme das nicht hin weil es
immer die gleichen Namen sind. Das muß ja auch so sein weil es
nicht nur einen Artikel gibt sondern event. mehrere wie in
einer Tabelle.

Äh hast du dir mein code angeschaut.

Bestimmt aber gar nicht erst verstanden , gell.

Also nochmal, wenn deine Tabelle immer gleichviele werte pro eintrag hat, also immer Anzahl,Preis,GPreis,Summe und sich dann wiederholen.

also

Anzahl,Preis,GPreis,Summe
Anzahl,Preis,GPreis,Summe
Anzahl,Preis,GPreis,Summe

dann könntest du natürlich immer den gleichen namen nehmen.

aber , weil PHP dir auf einfache weise helfen kann sollte dein feld als array geschrieben werden.

nicht order sondern order[]

in php liest man das mit $_POST[‚order‘] aus , das heisst die werte werden in einem array zusammen gefasst, wobei der 1 wert auch an erster stelle ist etc.
speichern wir das mal in $orders;

also

$orders = $_POST[‚order‘];

nun wissen wir ja das immer 4 werte aufeinaner folgen um einen eintrag darzustellen.

$orders[0],$orders[1],$orders[2],$orders[3]

wir schliessen weiterhin darauf das alle 4 werte ein neuer eintrag kommt.

$orders[4],$orders[5],$orders[6],$orders[7]

$orders[8],$orders[9],$orders[10],$orders[11]

somit können wir im PHP das auch für jeden datensatz wieder auseinander tüffteln.

beispiel code

<?php // wichtig um daten als array auszulesen stellt php eine funktion bereit
// dazu muss der htmlautor imnamen ein [] anhängen, somit erkennt php // das es sich um mehrere WErte handelt und sammelt sie automatisch. // hier ein Beipiel wie sowas aussieht. // ... // Beispiel daten // entspricht // $orders = $\_POST['order']; $orders = array('1','2','3','4','5','6','7','8','9','10','11','12'); $anzahlfelder = 4; $anzahleintrag = -1; $bis = -1 ; $anzfelder = sizeof($orders); // nun holen wir eintrag für eintrag , das tun wir solange wie $bis kleiner als $anzfelder ist while ( $bis "; } ?\> solange die einträge eine konsitente anzahl an wertfeldern haben, ist es egal wieviele einträge gemacht wurden . Und imemr hat der input tag denselben namen nur halt mit einem [] hinten drann.

Hier zum Beispiel http://legioneuropa.le.ohost.de/test/php/form_read_a…

der fall, das du nicht die form selber erzeugst sondern schon fertiges weiterverarbeitest.

also wenn du nicht ein [] ans ende hängen könntest , weil es nicht dein code ist der das produziert.

hier die lösung wie du solche daten korrigieren kannst so dass wieder ein array ensteht (und nicht nur der letzte wert) .

dort steht die lösung :smile:
http://www.php.net/manual/en/language.variables.exte…