tag:forum.selfhtml.org,2005:/self Basic Frage Formular – SELFHTML-Forum 2017-02-26T16:09:23Z https://forum.selfhtml.org/self/2017/feb/26/basic-frage-formular/1688130#m1688130 Birgit 2017-02-26T14:38:18Z 2017-02-26T14:38:18Z Basic Frage Formular <p>Hallo in die Runde, habe mal eine sehr basic Frage zu einem Formular. Daten werden über php in das Formular geschrieben und per POST und php nach Abschicken in eine Datenbank geschrieben. Jetzt habe ich den Fall, dass ich eine Liste mit Tasks habe</p> <ul> <li>2017-02-26 Im SelfhtmlForum fragen stellen - Erledigt</li> <li>2017-02-27 Antwort in Script einbauen - Erledigt</li> <li>2017-02-28 Kopf einschalten und selber nachdenken - Erledigt</li> <li>.</li> <li>.</li> </ul> <p>wobei das "Erledigt" hinter jedem Eintrag im Prinzip der Submit Button ist. Wenn ich auf Erledigt klicke wird in der Datenbank der Status des Eintrags geändert.</p> <p>Meine Fragen mache ich die gesamte Liste in einem "<form>" Element, oder benötige ich für jeden Eintrag ein eigenes <form></form> Konstrukt? Wenn in einem einzigen - auf was muss ich achten?</p> <p>Klar, könnte ich das auch mit einem Häckchen oder Select Button machen und dann am Ende der Liste einen einzigen Submit Button - aber ich fände diese Lösung schöner.</p> <p>Dank euch schon mal Birgit</p> https://forum.selfhtml.org/self/2017/feb/26/basic-frage-formular/1688140#m1688140 Regina Schaukrug 2017-02-26T15:26:25Z 2017-02-26T15:34:39Z Basic Frage Formular <p>Ein Formular kann viele Submit-Buttons haben. Im Falle des Absendens wird der Name und der Value des angeklickten Submits gesendet. Benutze also Submits mit unterschiedlichem Name und gleichen Values oder, was sich manchmal besser programmieren lässt, mit gleichem Name (für weitere, eventuelle JS-Sachen verwende eine eindeutige ID) . Hier das Beispiel mit Submits:</p> <pre><code class="block"><input type=submit name="erledigt[123]" value="v" /> <input type=submit name="erledigt[124]" value="v" /> </code></pre> <p>Mit Buttons geht das auch. Hier das Minimalbeispiel zum Ausprobieren (sieh Dir die URL an und überlege wie das serverseitig auszuwerten ist):</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>erledigt[123]<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>erledigt[124]<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e_125<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>125<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e_126<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>126<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> https://forum.selfhtml.org/self/2017/feb/26/basic-frage-formular/1688149#m1688149 TS ts-self@online.de https://bitworks.de 2017-02-26T16:05:05Z 2017-02-26T16:14:54Z Basic Frage Formular <p>Hello,</p> <blockquote> <p>Daten werden über php in das Formular geschrieben und per POST und php nach Abschicken in eine Datenbank geschrieben. Jetzt habe ich den Fall, dass ich eine Liste mit Tasks habe</p> <ul> <li>2017-02-26 Im SelfhtmlForum fragen stellen - Erledigt</li> <li>2017-02-27 Antwort in Script einbauen - Erledigt</li> <li>2017-02-28 Kopf einschalten und selber nachdenken - Erledigt</li> <li>.</li> <li>.</li> </ul> <p>wobei das "Erledigt" hinter jedem Eintrag im Prinzip der Submit Button ist. Wenn ich auf Erledigt klicke wird in der Datenbank der Status des Eintrags geändert.</p> <p>Meine Fragen mache ich die gesamte Liste in einem "<form>" Element, oder benötige ich für jeden Eintrag ein eigenes <form></form> Konstrukt? Wenn in einem einzigen - auf was muss ich achten?</p> <p>Klar, könnte ich das auch mit einem Häckchen oder Select Button machen und dann am Ende der Liste einen einzigen Submit Button - aber ich fände diese Lösung schöner.</p> </blockquote> <p>Sicherer ist immer die Einzelbearbeitung.<br> Bei Verwendung eines Grids ist die Fehler- und Manipulationsgefahr größer.</p> <p>Man kann aber etwas dagegen tun:<br> Beim Aufruf einer Seite mit mehreren Datenzeilen schreibt man deren IDs in die Session. Kommt jetzt eine Änderungs- oder Löschanfrage hierfür, muss die ID auch in der Session stehen. Erst dann wird abgearbeitet.</p> <p>Das gemeinsame Abarbeiten im Update geht z. B bequem mit der Klausel "where ID in(1,5,70,99)".</p> <p>Wenn Du es noch manipulatinssicherer haben willst, also dass garantiert nur Datensätze bearbeitet (update, delete) werden können, die direkt davor zur Sicht selektiert wurden, dann übersetzt Du in der Session die realen IDs in Schlüssel, z. B $key = md5('geheim' . ID) und sendest nur diese Schlüssel zu Client. So kann dann ein User wirklich nur die Datensätze manipulieren, die er auch sehen durfte.</p> <p>Liebe Grüße<br> Tom S.</p> <div class="signature">-- <br> Die Krawatte ist das Kopftuch des Westens<br> </div> https://forum.selfhtml.org/self/2017/feb/26/basic-frage-formular/1688151#m1688151 TS ts-self@online.de https://bitworks.de 2017-02-26T16:09:23Z 2017-02-26T16:10:27Z Basic Frage Formular <p>Hello,</p> <blockquote> <p>Ein Formular kann viele Submit-Buttons haben. Im Falle des Absendens wird der Name und der Value des angeklickten Submits gesendet. Benutze also Submits mit unterschiedlichem Name und gleichen Values oder, was sich manchmal besser programmieren lässt, mit gleichem Name (für weitere, eventuelle JS-Sachen verwende eine eindeutige ID) . Hier das Beispiel mit Submits:</p> <pre><code class="block"><input type=submit name="erledigt[123]" value="v" /> <input type=submit name="erledigt[124]" value="v" /> </code></pre> <p>Mit Buttons geht das auch. Hier das Minimalbeispiel zum Ausprobieren (sieh Dir die URL an und überlege wie das serverseitig auszuwerten ist):</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>erledigt[123]<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>erledigt[124]<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e_125<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>125<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>e_126<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>126<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>V<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> </blockquote> <p>Hier bieten sich bei Listenbearbeitung allerdings eher Checkboxen für die Datensätze und ein gemeinsamer Submitbutton für die Ausführen-Funktion an.</p> <p>Liebe Grüße<br> Tom S.</p> <div class="signature">-- <br> Die Krawatte ist das Kopftuch des Westens<br> </div>