Veröffentlicht 21. Juni 200520 j Hallo Leute, ich schreibe gerade eine Seite in PHP, welche sehr viele (bisher zwischen 30 bis 40 ungefähr) Eingabefelder hat. Mein Problem ist nun folgendes. Bei einem Eingabenteil gibt es die Möglichkeit Zeilen hinzuzufügen, also dementsprechend noch 5 Eingabefelder dazu. Dazu lade ich die Seite neu und gebe einfach eine Zeile mehr aus. Mein Problem ist jetzt, wenn ich in den anderen Eingabefeldern bereits etwas eingetragen habe, sind diese Eingaben nach dem Klick auf den Button weg. Gibt es eine Möglichkeit die Seite "neu zu laden", ohne dass die Eingaben verschwinden? Danke schonmal.
21. Juni 200520 j Also wenn ich das richtig verstanden habe, dann schickst du das formular zum hinzufügen von Feldern ab, richtig? Also musst du alle Feldvariablen die dir per Formular übergeben werden (s. $_POST & $_GET) dann in das value="" attribut deiner Eingabefelder reinschreiben. Weißt wie ich das meine? ^^ mfg Eth
21. Juni 200520 j Natürlich gibt es einen Weg, wie sollten sonst die ganzen anderen Web-Formulare funktionieren?! Das HTML Input-Element besitzt das Attribut "value", mit dem du den Vorgabewert festlegen kannst: http://de.selfhtml.org/html/formulare/eingabe.htm
21. Juni 200520 j Klar, das verstehe ich schon. Aber ich habe da schon was drinstehen, für den Fall dass Sachen aus der Datenbank ausgelesen werden sollen... Kann ich in dem Input-Statement eine If-Abfrage reinsetzen?
21. Juni 200520 j du kannst für jedes Formularfeld eine If-Abfrage machen. if(isset($_GET['feld1']) $feld1 = $_GET['feld1']; else $feld1 = query(select...); weis nicht ob du JS "nicht" benutzen willst, aber ansonsten kannst du auch neue Felder mit Javascript hinzufügen. Vorrausgesetzt da wird kein Dynamischer Inhalt bei eingefügt. Wenn du mehr dazu wissen willst, gib bscheid.
21. Juni 200520 j Kann ich in dem Input-Statement eine If-Abfrage reinsetzen?Nein, kannst du nicht. HTML ist "nur" eine Dokumentenbeschreibungssprache und dort gibt es keine Kontrollstrukturen. Aber du kannst bei der Generierung der HTML Seite beeinflussen, was überhaupt ausgegeben werden soll, und dort die Unterscheidung treffen, welcher Inhalt verwendet werden soll. Generell solltest du dich dringend intensiver in das Thema dynamische Webseitengenerierung, HTML und wie diese beiden Themen zusammenspielen einarbeiten.
21. Juni 200520 j Ich weiß schon wie das läuft. Ich meinte es ja auch so, dass ich quasi sag echo "<input name='xy' type='text' value='".if bla then bla else bla."'>"; ich geb ja die HTML-Codes mittels echo aus PHP aus. Und wenn ich da kurz ins PHP "springe" wieder, eine If-Abfrage mache, und dann wieder ins echo "springe", verstehst Du wie ich meine?
21. Juni 200520 j ich geb ja die HTML-Codes mittels echo aus PHP aus. Und wenn ich da kurz ins PHP "springe" wieder, eine If-Abfrage mache, und dann wieder ins echo "springe", verstehst Du wie ich meine?Probier es doch einfach aus, dann wirst du ja sehen, was rauskommt
21. Juni 200520 j Ich dachte halt ich frag mal, bevor ich mich da jetzt ransetze und eventuell Zeit verschenke... :-) Aber ich werds mal versuchen.
21. Juni 200520 j Das was er will kommt da raus. Natürlich kannst du die Values dynamisch per if-abfrage setzen. Mach ich schon lange.
21. Juni 200520 j Ich dachte halt ich frag mal, bevor ich mich da jetzt ransetze und eventuell Zeit verschenke... :-)Ich wundere mich immer wieder, wieso man manchmal ewig ins Forum postet, wenn ein simples Ausprobieren in einem Bruchteil der Zeit zur Antwort führt - nun gut, das muss jeder selber wissen
21. Juni 200520 j Ich wundere mich immer wieder, wieso man manchmal ewig ins Forum postet, wenn ein simples Ausprobieren in einem Bruchteil der Zeit zur Antwort führt - nun gut, das muss jeder selber wissen Naja, kann man sich schon fragen... *g* Ich mach grad noch was anderes, von daher hatte das keine hohe Prio, drumn konnte ich nachfragen.
22. Juni 200520 j <html> <body> <script type="text/javascript"> var count = 0; function addInput(name) { count ++; frm = document.getElementById('frm1'); beschreibung = document.createTextNode('Inputfeld '+count); input = document.createElement('input'); input.type= 'text'; input.size = '20'; input.name = name + "_" + count; br = document.createElement('br'); frm.appendChild(input); frm.appendChild(beschreibung); frm.appendChild(br); } </script> <form method="post" id="frm1"> <button onclick="addInput('test');">AddInput test1</button><br/> </form> </body> </html> getestet im IE und Firefox
24. Juni 200520 j Funktioniert soweit, danke. Problem jetzt ist, dass er die neuen Felder ans Ende der Seite setzt... Gibt es eine Möglichkeit zu sagen, dass die Felder in eine bestehende Tabelle als neue Zeile mit eingefügt werden sollen?
24. Juni 200520 j "frm = document.getElementById('frm1');" ich adde in dem Code alle Elemente als Childs zu dem Forum. Wenn du stattdessen die Childs in eine Tabelle oder ein Div-Layer einfügst. kannst du genau bestimmen wo im Formular sie auftauchen.
27. Juni 200520 j "frm = document.getElementById('frm1');" ich adde in dem Code alle Elemente als Childs zu dem Forum. Wenn du stattdessen die Childs in eine Tabelle oder ein Div-Layer einfügst. kannst du genau bestimmen wo im Formular sie auftauchen. Sprich ich ändere einfach die ID der Form ab in die ID der Tabelle, oder wie? Irgendwie funktioniert das nicht... :-(
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.