ZeitGeist
Lounge-Member
Gut, habe das nächste Problem. Wenn ich jetzt das formular abschicke und mit PHP auf die Felder zugreifen will, versuche ich das per $_POST['tracknr'][$i]. Durch das [] am ende des Namen des Formularfeldes sollte ja PHP die werte ja eigentlich in ein Array lesen. Funktioniert auch bei allen Feldern dich ich per php erzeugen lasse. Wenn ich jetzt aber zusätzliche Felder mit JS anlege, werden diese von PHP ignoriert. Jemand eine idee wie ich das lösen könnte?
hier noch mal die entsprechenden codeteile:
Alle Felder die mit PHP erzeugt wurden sind wenn ich das Fomular abschicke und mir die Inhalte anzeigen lasse wieder da, alle Felder die mit JS erzeugt wurden werden einfach verschluckt, PHP findet die nicht im entsprechendem $_POST (hab die zählen lassen).
WEiß wer warum und was ich dagegen machen kann?
hier noch mal die entsprechenden codeteile:
PHP:
for ($i = 0; $i < count($TrackData); $i++)
{
$retval[] = "\t\t<tr>";
$retval[] = "\t\t\t".'<td><input type="text" name="tracknr[]" size="2" maxlength="2" value="'.$TrackData[$i]['nr'].'" /><input type="hidden" name="trackid[]" value="'.$TrackData[$i]['id'].'" /></td>';
$retval[] = "\t\t\t".'<td><input type="text" name="tracktitel[]" value="'.$TrackData[$i]['titel'].'" size="25" maxlength="200" /></td>';
$retval[] = "\t\t\t".'<td><input type="text" name="trackmin[]" value="'.$TrackData[$i]['min'].'" size="2" maxlength="2" />:<input type="text" name="tracksek[]" value="'.$TrackData[$i]['sek'].'" size="2" maxlength="2" /></td>';
$retval[] = "\t\t\t".'<td><input type="text" name="trackfile[]" value="'.$TrackData[$i]['url'].'" size="25" maxlength="200" readonly="readonly" /><input type="hidden" name="trackfilechanged[]" value="'.$fileChanged[$i].'"/></td>';
$retval[] = "\t\t\t".'<td><input type="button" value="mp3 wählen" onclick="chooseMp3('.$i.')" /><input type="button" value="alte mp3" onclick="RestoreMp3(\''.$TrackData[$i]['url'].'\', '.$i.')" /></td>';
$retval[] = "\t\t</tr>";
}
HTML:
<script>
function createTrackEntry()
{
count = document.getElementsByName('trackid[]').length;
var newTr = document.createElement( "TR" );
var newTd = document.createElement( "TD" );
newTd.innerHTML = '<input type="text" name="tracknr[]" value="'+(count+1)+'" size="2" maxlength="2" /><input type="hidden" name="trackid[]" value="0" />';
newTr.appendChild( newTd );
var newTd = document.createElement( "TD" );
newTd.innerHTML = '<input type="text" name="tracktitel[]" size="25" maxlength="200" />';
newTr.appendChild( newTd );
var newTd = document.createElement( "TD" );
newTd.innerHTML = '<input type="text" name="trackmin[]" size="2" maxlength="2" />:<input type="text" name="tracksek[]" size="2" maxlength="2" />';
newTr.appendChild( newTd );
var newTd = document.createElement( "TD" );
newTd.innerHTML = '<input type="text" name="trackfile[]" size="25" maxlength="200" readonly="readonly" /><input type="hidden" name="trackfilechanged[]" value="0" />';
newTr.appendChild( newTd );
var newTd = document.createElement( "TD" );
newTd.innerHTML = '<input type="button" value="mp3 wählen" onclick="chooseMp3('+count+')" /><input type="button" value="alte mp3" onclick="RestoreMp3(\'\', '+count+')" />';
newTr.appendChild( newTd );
var oTableBody = document.getElementById( "tracklist" );
if ( oTableBody.firstChild && oTableBody.firstChild.tagName == "TBODY" )
{
oTableBody = oTableBody.firstChild;
}
oTableBody.appendChild( newTr );
}
</script>
WEiß wer warum und was ich dagegen machen kann?