Tabelle+Formular+Array Probleme
Moin erstmal.
habe da 2-3 kleine Prob's mit meinem Formular in einer dynamisch Tabelle.
Also, ich habe in PHP/Smarty ein Formular in einer Tabelle erstellt, die je nach Eingabe eine weiter Zeile erhalten soll, das mache ich mittels js (siehe Code gekürzt).
Im PHP/Smarty ist dabei die 1. Zeile schon vorgegeben.
Soweit funktioniert auch alles, zumindest bekomme ich jedes mal eine neue Zeile.
Wenn ich dann den SUBMIT-Button drücke, um die Werte zu erhalten, wird jedoch nur der Wert aus dem PHP-Teil ausgegeben
hier erstmal der js Codeausschnitt
die gekürzte PHP/Smarty
um die ausgabe zu testen:
Bsp:
die 1. Zeile ist ja schon da, da gebe ich abc ein, -> eine neue Zeile wird erstellt
in die neue, also 2. Zeile gebe ich def ein -> Submit-Button gedrückt ->
Ausgabe:
Das war das grössere Problem
Das Kleine ist, wenn die 2. Zeile erstellt wird, ist ein grösserer Abstand zwischen der 1. und 2. Zeile, als wenn eine weiter erstellt wird, zwischen der 2. und 3. Zeile.
Hoffe, ihr könnt mir da ein wenig helfen, da es gerade mein Anfänge mit JS sind und ich nicht schon Aufgeben möchte.
Danke schoneinmal
Grüsse
HugoEA
Moin erstmal.
habe da 2-3 kleine Prob's mit meinem Formular in einer dynamisch Tabelle.
Also, ich habe in PHP/Smarty ein Formular in einer Tabelle erstellt, die je nach Eingabe eine weiter Zeile erhalten soll, das mache ich mittels js (siehe Code gekürzt).
Im PHP/Smarty ist dabei die 1. Zeile schon vorgegeben.
Soweit funktioniert auch alles, zumindest bekomme ich jedes mal eine neue Zeile.
Wenn ich dann den SUBMIT-Button drücke, um die Werte zu erhalten, wird jedoch nur der Wert aus dem PHP-Teil ausgegeben
hier erstmal der js Codeausschnitt
Code:
function ZellenEinfuegen()
{
var t=document.getElementsByTagName('tr');
for (var x=0; x < t.length; x++)
{}
var tr = document.getElementById('prod_mehrf').insertRow(x-1);
.
.
.
var td2 = document.createElement('td');
var inp2 = document.createElement('input');
inp2.setAttribute('type','text');
inp2.setAttribute('id','markem');
inp2.setAttribute('name','markeman[]');
inp2.setAttribute('size','10');
td2.align = 'center';
td2.appendChild(inp2);
tr.appendChild(td2);
.
.
.
var td9 = document.createElement('td');
var inp9 = document.createElement('input');
inp9.setAttribute('type','text');
inp9.setAttribute('name','preis[]');
inp9.setAttribute('size','4');
inp9.setAttribute('maxlength','7');
inp9.setAttribute('onclick','ZellenEinfuegen();');
td9.align = 'center';
td9.appendChild(inp9);
tr.appendChild(td9);
.
.
.
}
die gekürzte PHP/Smarty
Code:
<table id="prod_mehrf"; width:"100%";>
<tr style="text-align:center;">{*Tab-Kopf*}
...
<th width:"89px";>{*Markenname*}
Markenname
</th>
...
<th width:"69px";>{*Preis*}
Preis
</th>
...
</tr>
<form action='index.php?section=eing_mehrf' method='post'>
<tr style="text-align:center;">{*Tabelle*}
...
<td>
<p width:"89px";>{*Markenname*}
<input type ='text' id='markem' name ='markeman[]' size='10'>
</p>
</td>
...
<td>
<p width:"69px";>{*Preis*}
<input type ='text' name ='preis[]' size='4' maxlength='7' onclick=ZellenEinfuegen();>
</p>
</td>
...
</tr>
<tr>
<td colspan="3";>
<p>
<input type='submit' name='einf_mehr' value='Einfügen'>
</p>
</td>
</tr>
</form>
</table>
um die ausgabe zu testen:
Code:
print_r($_POST['markeman']);
Bsp:
die 1. Zeile ist ja schon da, da gebe ich abc ein, -> eine neue Zeile wird erstellt
in die neue, also 2. Zeile gebe ich def ein -> Submit-Button gedrückt ->
Ausgabe:
Code:
Array
(
[0] => abc
)
Das war das grössere Problem
Das Kleine ist, wenn die 2. Zeile erstellt wird, ist ein grösserer Abstand zwischen der 1. und 2. Zeile, als wenn eine weiter erstellt wird, zwischen der 2. und 3. Zeile.
Hoffe, ihr könnt mir da ein wenig helfen, da es gerade mein Anfänge mit JS sind und ich nicht schon Aufgeben möchte.
Danke schoneinmal
Grüsse
HugoEA
Zuletzt bearbeitet: