Hi Leute!
Mein Problem sieht wie folgt aus:
Ich erstelle mit Hilfe eines Formulars das (durch javascript) erweiterbar ist eine Tabelle.
Das heißt man kann das formular um weitere Zeilen (und somit auch input-Felder) erweitert werden! Das ist nicht das Problem, denn die Variablen werden alle übernommen.
Mein Problem sieht jetzt wie folgt aus:
Mein Script soll nun die Variablen verwenden um die Tabelle in einer seperaten Datei (die vom Script erstellt wird) gespeichert werden! Doch anstatt alle Zeilen des Formulars zu erstellen wird nur die Letzte übernommen.
Hier die Scripts:
das formular: (funktioniert einwandfrei, auch die java funktionen! Müsst ihr euch nicht ansehen wenn ihr nicht wollt)
create.php (gekürzt):
Wenns was mit der Variable "$farbe" zu tun hat (was ich nicht glaube, auch wenn ich mich damit noch genauer beschäftigen muss) wie könnte ich das DANN lösen
Bitte helft mir, ich bin am Verzeweifeln!!
greetz
Nero
Mein Problem sieht wie folgt aus:
Ich erstelle mit Hilfe eines Formulars das (durch javascript) erweiterbar ist eine Tabelle.
Das heißt man kann das formular um weitere Zeilen (und somit auch input-Felder) erweitert werden! Das ist nicht das Problem, denn die Variablen werden alle übernommen.
Mein Problem sieht jetzt wie folgt aus:
Mein Script soll nun die Variablen verwenden um die Tabelle in einer seperaten Datei (die vom Script erstellt wird) gespeichert werden! Doch anstatt alle Zeilen des Formulars zu erstellen wird nur die Letzte übernommen.
Hier die Scripts:
das formular: (funktioniert einwandfrei, auch die java funktionen! Müsst ihr euch nicht ansehen wenn ihr nicht wollt)
HTML:
<script language="JavaScript1.2">
function clone_this(){
NewRow = document.getElementById('tab').lastChild.cloneNode(true);
document.getElementById('tab').appendChild(NewRow);
var i = document.getElementById('tab').childNodes.length;
for(j=0;j<document.getElementById('tab').lastChild.getElementsByTagName('input').length;j++){
if(j == 0){
var spalte = 'add';
}
else if(j == 1){
var spalte = 'data';
}
var newname = spalte + i;
document.getElementById('tab').lastChild.getElementsByTagName('input')[j].setAttribute('name', newname);
//var name = document.getElementById('tabdim').lastChild.getElementsByTagName('input')[j].name;
document.getElementById('tab').lastChild.getElementsByTagName('input')[j].value='';
document.getElementById('zeilen').setAttribute('value', i);
}
}
function delete_row(){
var zaehlen = document.getElementById('tab').childNodes.length;
if(zaehlen > 1){
var Knoten = document.getElementById ('tab').lastChild; //Letzte Zeile der Tabelle ermitteln
document.getElementById ('tab').removeChild(Knoten); //Letzte Zeile der Tabelle entfernen
}
}
</script>
<form method="post" name="create_data" action="create.php">
<table>
<tr bgcolor="#aaaaaa">
<td valign="top"><font size="2">zusätzliche daten (<i>additional data</i>):</font></td>
<td colspan="2" align="right">
<table width="100%" border="1" bordercolor="#770000" cellspacing="0" cellpadding="2" id="tab" style="border-collapse:collapse;">
<tr>
<td width="40%"><input type="text" name="add1"></td>
<td width="60%"><input type="text" name="data1"></td>
</tr>
</table>
<input type="hidden" name="zeilen" id="zeilen" value="1"><input type="button" value="+" onClick="clone_this()"><input type="button" value="-" onClick="delete_row()">
</td>
</tr>
</table></form>
create.php (gekürzt):
PHP:
if(isset($_POST['zeilen'])){
$zeilen = $_POST['zeilen'];
}
$i = $zeilen;
while ($i > 0) {
$i--;
if (!($i%2))
continue;
}
for($x=1;$x<=$zeilen;$x++){
echo "$x";
if($i == $x){
$farbe = '#aaaaaa';
}
else{
$farbe = '#cccccc';
}
$add['$x'] = $_POST['add'.$x];//daten aus den testfeldern werden übernommen und in eine variable geladen
$data['$x'] = $_POST['data'.$x];
ob_start();
if($add['$x'] == "" && $data == ""){//ist keine eingabe vorhanden...
echo "<tr><td></td><td bgcolor='#990000'> </td><td bgcolor='".$farbe."'> </td><td bgcolor='".$farbe."'> </td></tr>";//wird eine zeile begonnen und darin eine leeren zelle generiert
}
elseif($add['$x'] !== "" && $data['$x'] !== ""){//ist eine eingabe vorhanden...
echo "<tr><td></td><td bgcolor='#990000' align='center'>".$add['$x']."</td><td bgcolor='".$farbe."' align='center'>".$data['$x']."</td><td bgcolor='".$farbe."'> </td></tr>";//wird eine zeile begonnen und darin eine zelle, welche die eingabe beinhaltet, generiert
}
$additional = ob_get_contents();
ob_end_clean();
$vorlage = '<table>'.$additional.'</table>
$file_exists = FALSE;
$verz = opendir($pfad);
while($files = readdir($verz)){
if($files !== "." && $files !== ".."){
$files = substr($files,0,strlen($files)-4);
if($files == $dat_nam) { $file_exists = TRUE; break;}
}
}
closedir($verz);
if($file_exists){
echo "<br><br><font size='2'>diese datei ist bereits vorhanden. wählen sie einen anderen namen oder löschen sie die bereits vorhandene datei mit dem entsprechenden punkt im forumlar.</font>";
}
else {
echo "<br><br><font size='2'>die datei wird erstellt bitte warten...</font>";
$neuedatei = fopen($pfad2.".php", "a+");
fwrite($neuedatei, $vorlage);
fclose($neuedatei);
if(file_exists($pfad2.".php")) {
echo "<font size=\"2\">datei \"".$dat_nam.".php\" wurde erstellt.</font><br><br>";
}
else{
echo "<font size=\"2\">datei \"".$dat_nam.".php\" konnte nicht erstellt werden.</font><br><br>";
}
}
Wenns was mit der Variable "$farbe" zu tun hat (was ich nicht glaube, auch wenn ich mich damit noch genauer beschäftigen muss) wie könnte ich das DANN lösen
Bitte helft mir, ich bin am Verzeweifeln!!
greetz
Nero
Zuletzt bearbeitet: