Hallo,
ich benötige Eure Hilfe bei folgendem Problem:
Ich habe ein Formular, dass per js erweitert werden kann.
In diesem Formular soll der user beliebig viele felder anlegen können.
Es wird nach dem Namen und per select nach dem typ gefragt.
Nun sollen diese Felder in der Tabelle gespeichert werden.
Nur weiß ich nicht, wie ich die beiden formlarfelder, also das inputfeld und das selectfeld übergeben und per foreach speichern soll.
Hier mal das js-script:
Hier das HTML-Formular:
lasse ich mir es ausgeben, erhalte ich folgendes:
Array ( [artikel] => AÖ001 [upload] => Array ( [0] => Vorname [1] => text [2] => Nachname [3] => text [4] => Bilddatei [5] => datei ) [speichern] => Datenfelder speichern [typ] => datei )
Ziel ist es bei einer Formlareingabe von z.B.:
Feldname: Vorname - Typ: text
Feldname: Nachname - Typ: text
Feldname: Bilddatei - Typ: datei
Dies so in die Tabelle zu schreiben:
Feldname - Feldtyp
Vorname - text
Nachname - text
Bilddatei - datei
Dazu folgender Code:
Im Code frage ich ab, ob es das übergebene Feld gibt, wenn nicht erzeuge ich es. Das funktioniert auch, wenn ich nur das Inputfeld abfrage, jedoch soll ja das Selectfeld auch mit erzeugt werden. Das müsste, glaube ich, mit mehrdimensionalen Arrays funktionieren, jedoch habe ich keine Ahnung, wie ich dies erzeugen und und einer Schleife auswerten soll.
Bitte um Hilfe, DANKE.
ich benötige Eure Hilfe bei folgendem Problem:
Ich habe ein Formular, dass per js erweitert werden kann.
In diesem Formular soll der user beliebig viele felder anlegen können.
Es wird nach dem Namen und per select nach dem typ gefragt.
Nun sollen diese Felder in der Tabelle gespeichert werden.
Nur weiß ich nicht, wie ich die beiden formlarfelder, also das inputfeld und das selectfeld übergeben und per foreach speichern soll.
Hier mal das js-script:
Code:
<script type="text/javascript"> var zeile = 1; // damit die erste nicht ueberschrieben wird.. function zeileEinfuegen () { var TR = document.getElementById("Tabelle").insertRow(zeile); var TD1 = document.createElement("td"); // erstes Feld var classTyp1 = document.createAttribute("class"); classTyp1.nodeValue = "bestellText"; TD1.setAttributeNode(classTyp1); // type=file var TD1text = document.createTextNode("Datenfeld "+(zeile+1)+":"); TD1.appendChild(TD1text); var TD2 = document.createElement("td"); // zweites Feld var TD2InputElement = document.createElement("input"); var classTyp2 = document.createAttribute("class"); classTyp2.nodeValue = "textfeldBestellInput"; var fileTyp1 = document.createAttribute("type"); fileTyp1.nodeValue = "text"; var name1 = document.createAttribute("name"); name1.nodeValue = "upload[]"; TD2InputElement.setAttributeNode(classTyp2); // type=file TD2InputElement.setAttributeNode(fileTyp1); // type=file TD2InputElement.setAttributeNode(name1); // name=.. TD2.appendChild(TD2InputElement); var TD3 = document.createElement("td"); // drittes Feld var TD3SelectElement = document.createElement("select"); TD3SelectElement.setAttribute('class','textfeldBestellInput'); TD3SelectElement.setAttribute('name','upload[]'); optionarr = new Array (); optionarr[0] = new Object (); optionarr[0]["text"] = "Text"; optionarr[0]["datei"] = "Datei"; for (key in optionarr[0]) { option = document.createElement ("option"); option.setAttribute('class','textfeldBestellInput'); option.value = key; option.appendChild (document.createTextNode (optionarr[0][key])); TD3SelectElement.appendChild (option); } TD3.appendChild(TD3SelectElement); TR.appendChild(TD1); TR.appendChild(TD2); TR.appendChild(TD3); zeile += 1; } </script>
Code:
<td><form name="Formular" method="post" action="kundendatenfelder_speichern.php" class="textfeldBestell" style="margin-left:0"> <table id="Tabelle"> <tr> <td class="bestellText">Datenfeld 1:</td> <td><input type="hidden" name="artikel" value="<?=$artikel?>"><input class=textfeldBestellInput type="text" name="upload[]"></td> <td><select size="1" name="upload[]"><option value="text">Text</option><option value="datei">Datei</option></select></td> </tr> </table> <input type="button" value="weitere Datenfelder" onclick="zeileEinfuegen()"> <input name="speichern" type="submit" value="Datenfelder speichern"> </form></td>
Array ( [artikel] => AÖ001 [upload] => Array ( [0] => Vorname [1] => text [2] => Nachname [3] => text [4] => Bilddatei [5] => datei ) [speichern] => Datenfelder speichern [typ] => datei )
Ziel ist es bei einer Formlareingabe von z.B.:
Feldname: Vorname - Typ: text
Feldname: Nachname - Typ: text
Feldname: Bilddatei - Typ: datei
Dies so in die Tabelle zu schreiben:
Feldname - Feldtyp
Vorname - text
Nachname - text
Bilddatei - datei
Dazu folgender Code:
PHP-Code:
foreach($_POST['upload'] as $felder)
{
$res = mysql_db_query($dbase, "select feldname from $table where feldname = '$felder'");
$num = mysql_num_rows($res);
for ($i=0; $i<$num; $i++)
{
$vorhanden = mysql_result($res, $i, "feldname");
}
if ($vorhanden == '')
{
$sqlab = "INSERT INTO $table ( `feldname` , `feldtyp` ) VALUES ('$felder', '$feldtyp')";
mysql_db_query($dbase, $sqlab);
}
}
Bitte um Hilfe, DANKE.
Kommentar