tag:forum.selfhtml.org,2005:/self Wenn User etwas wählt, weiteres Feld anzeigen – SELFHTML-Forum 2014-11-10T14:24:05Z https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624080#m1624080 HTML Anfänger 2014-11-03T21:26:11Z 2014-11-03T21:26:11Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Guten Abend,</p> <p>ich habe ein kleines (hoffentlich kein großes) Problem. Wenn ein User auf meiner Kontaktseite bei Anrede "Familie" wählt, sollte ein weiteres Feld erscheinen, klickt er wieder etwas anderes an bzw. macht überhaupt nichts, dann sollte dieses auch nicht erscheinen / wieder verschwinden.</p> <p>Mein HTML für das Feld Anrede</p> <pre><code class="block language-html"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>anrede<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Anrede<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>select</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>anrede<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>anrede<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</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>Familie<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Familie<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</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>Herr<span class="token punctuation">"</span></span> <span class="token attr-name">selected</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>selected<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Herr<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>option</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>Frau<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Frau<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>option</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>select</span><span class="token punctuation">></span></span> </code></pre> <p>Ein HTML Feld für z.B. Name habe ich so umgesetzt</p> <pre><code class="block language-html"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>label</span> <span class="token attr-name">for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Name: *<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>label</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></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>name<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>name<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><?=(isset($_POST['name'])) ? $_POST['name'] :''?><span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>Schwer dieses umzusetzen was ich oben geschrieben habe? Vielleicht hat jemand das bereits fertig und könnte es mir zur Verfügung stellen.</p> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624084#m1624084 ralphi ralphi4211@yahoo.de 2014-11-04T00:41:11Z 2014-11-04T00:41:11Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Hi,</p> <blockquote> <p>Ein HTML Feld für z.B. Name habe ich so umgesetzt</p> <pre><code class="block language-html"></code></pre> </blockquote> <blockquote> <p><label for="name">Name: *</label><br> <input type="text" name="name" id="name" value="<?=(isset($_POST['name'])) ? $_POST['name'] :''?>"></p> </blockquote> <pre><code class="block"> > hey wo hast du das den her: `<?=(isset($_POST['name'])) ? $_POST['name'] :''?>`{:.language-php} Ist das eine kurzform von: ~~~php <?php if ( isset($_POST['name'])) { echo $_POST['name']; } ?> </code></pre> <blockquote> <p>Schwer dieses umzusetzen was ich oben geschrieben habe? Vielleicht hat jemand das bereits fertig und könnte es mir zur Verfügung stellen.</p> </blockquote> <p>Mit Jquery eigentlich einfach<br> Ausführlich geschrieben (keine Kurzform ;-)</p> <pre><code class="block language-javascript"><span class="token function">$</span><span class="token punctuation">(</span><span class="token string">"#anrede"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">change</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token comment">// wenn sich was ändert </span> <span class="token keyword">var</span> inhalt <span class="token operator">=</span> <span class="token function">$</span><span class="token punctuation">(</span> <span class="token string">"anrede"</span> <span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">val</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// selected auslesen </span> <span class="token keyword">if</span> <span class="token punctuation">(</span> inhalt <span class="token operator">==</span> <span class="token string">"Familie"</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token string">"#feld"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// feld einblenden </span> <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token string">"#feld"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">hide</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// feld verstecken </span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Viele Grüße aus LA</p> <div class="signature">-- <br> ralphi </div> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624083#m1624083 Matthias Apsel webmaster@billiger-im-urlaub.de http://alternativ-tankstelle.de 2014-11-04T05:34:34Z 2014-11-04T05:34:34Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Om nah hoo pez nyeetz, HTML Anfänger!</p> <blockquote> <p>Wenn ein User auf meiner Kontaktseite bei Anrede "Familie" wählt, sollte ein weiteres Feld erscheinen, klickt er wieder etwas anderes an bzw. macht überhaupt nichts, dann sollte dieses auch nicht erscheinen / wieder verschwinden.</p> </blockquote> <blockquote> <pre><code class="block language-html"></code></pre> </blockquote> <blockquote> <p>value="<?=(isset($_POST['name'])) ? $_POST['name'] :''?>"></p> </blockquote> <pre><code class="block"> PHP ist da nicht die richtige Wahl, warum willst du warten, bis das Formular zum Server geschickt wurde? Rodney Rehm hat einen [passenden Artikel](http://wiki.selfhtml.org/wiki/JavaScript/Verkettete_Auswahllisten) geschrieben. Erst zur endgültigen Validierung des Formulars brauchst du PHp einzusetzen. Matthias -- Der Unterschied zwischen Java und JavaScript ist größer als der zwischen [Ziege und Ziegelstein](http://selfhtml.apsel-mv.de/java-javascript/index.php?buchstabe=Z#ziege). ![](http://www.billiger-im-urlaub.de/kreis_sw.gif) </code></pre> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624081#m1624081 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de/ 2014-11-04T05:46:29Z 2014-11-04T05:46:29Z Wenn User etwas wählt, weiteres Feld anzeigen <p>@@HTML Anfänger:</p> <p>nuqneH</p> <blockquote> <p>Ein HTML Feld für z.B. Name habe ich so umgesetzt</p> <pre><code class="block language-html"></code></pre> </blockquote> <blockquote> <p><label for="name">Name: *</label><br> <input type="text" name="name" id="name" value="<?=(isset($_POST['name'])) ? $_POST['name'] :''?>"></p> </blockquote> <pre><code class="block"> Und das ist grundsätzlich falsch! Du darfst NIEMALS Nutzereingaben unbehandelt in HTML ausgeben, sonst reißt du [Sicherheitslöcher](http://de.wikipedia.org/wiki/Cross-Site-Scripting) auf groß wie Scheunentore. Immer den [Kontextwechsel](http://wiki.selfhtml.org/wiki/PHP/Anwendung_und_Praxis/Kontextwechsel/erkennen_und_behandeln) beachten: `<input type="text" name="name" id="name" value="<?=[code lang=php](isset($_POST['name'])) ? [link:http://php.net/manual/de/function.htmlspecialchars.php@title=htmlspecialchars]($_POST['name']) :''`{:.language-html}?>">[/code] Qapla' -- „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer) </code></pre> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624082#m1624082 dedlfix 2014-11-04T07:38:46Z 2014-11-04T07:38:46Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Tach!</p> <blockquote> <p>Du darfst NIEMALS Nutzereingaben unbehandelt in HTML ausgeben, sonst reißt du <a href="http://de.wikipedia.org/wiki/Cross-Site-Scripting" rel="nofollow noopener noreferrer">Sicherheitslöcher</a> auf groß wie Scheunentore.</p> </blockquote> <p>Die reißt man sich auch, wenn man Daten unbehandelt verwendet, die keine Nutzereingaben sind. Ob sie in grauer Vorzeit Nutzereingaben waren oder aus anderen Quellen stammen, spielt dabei keine Rolle. Das sollte man auch nicht beachten müssen. Zu komplex werden die Bearbeitungsschritte, als dass es noch sinnvoll ist, bei der Ausgabe für jedes Bit dessen Herkunft zu kennen. Ankommende Daten sollten lediglich inhaltlich überprüft werden und gegebenenfalls in ihre Rohform überführt werden, also zum Beispiel von Maskierungszeichen bereinigt werden, wenn sie für irgendwelche Transportmechanismen damit bestückt waren.</p> <blockquote> <p>Immer den <a href="http://wiki.selfhtml.org/wiki/PHP/Anwendung_und_Praxis/Kontextwechsel/erkennen_und_behandeln" rel="nofollow noopener noreferrer">Kontextwechsel</a> beachten:</p> </blockquote> <p>Eben, _immer_, nicht nur bei bestimmten Daten. Die Einführung des Artikels kann man ruhig auch lesen, also: <a href="http://wiki.selfhtml.org/wiki/Kontextwechsel" rel="nofollow noopener noreferrer">Kontextwechsel</a>.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624087#m1624087 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de/ 2014-11-04T05:52:44Z 2014-11-04T05:52:44Z Wenn User etwas wählt, weiteres Feld anzeigen <p>@@ralphi:</p> <p>nuqneH</p> <blockquote> <p>hey wo hast du das den her:<br> <code class="language-php"><span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span> <span class="token punctuation">:</span><span class="token string single-quoted-string">''</span><span class="token delimiter important">?></span></span></code></p> </blockquote> <p>Aus der Hölle. Auch an dich nochmal der <a href="https://forum.selfhtml.org/?t=218718&m=1506879" rel="noopener noreferrer">Hinweis</a>, dass <code class="language-php"><span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code> fehlt. (Im Folgenden ergänzt.)</p> <p><a href="http://php.net/manual/de/control-structures.alternative-syntax.php" rel="noopener noreferrer">Alternative Syntax für Kontrollstrukturen</a></p> <blockquote> <p>Ist das eine kurzform von:<br> <code class="language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span></code></p> </blockquote> <p>Nicht ganz. Sonderm</p> <pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Qapla'</p> <div class="signature">-- <br> „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer) </div> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624085#m1624085 HTML Anfänger 2014-11-10T13:42:53Z 2014-11-10T13:42:53Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Hallo,</p> <blockquote> <p>Mit Jquery eigentlich einfach<br> Ausführlich geschrieben (keine Kurzform ;-)</p> <pre><code class="block language-javascript"></code></pre> </blockquote> <p>$("#anrede").change(function(){ // wenn sich was ändert</p> <blockquote> <p>var inhalt = $( "anrede" ).val(); // selected auslesen<br> if ( inhalt == "Familie" ) {<br> $("#feld").show(); // feld einblenden<br> }else{<br> $("#feld").hide(); // feld verstecken<br> }<br> });</p> </blockquote> <pre><code class="block"> Danke für deinen Code. Hab diesen eingebaut aber bringt leider nicht dieses Ergebnis das ich erhofft habe. Wenn ein User auf die Seite geht, sollte das Feld ~~~html <div class="textfeld" id="familie"> <label for="familie">Familie</label> <input type="text" name="familie" id="familie" value="<?=(isset($_POST['familie'])) ? htmlspecialchars($_POST['familie']) :''?>"> </div> </code></pre> <p>ausgeblendet sein, dieses habe ich mit</p> <pre><code class="block language-css"> <span class="token selector">#familie</span> <span class="token punctuation">{</span> <span class="token property">display</span><span class="token punctuation">:</span>none<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>gemacht. Nun ist es auch weg. Wenn ich jetzt deinen jQuery Code benutzt, passiert leider nichts. Aber egal. ich lass es einfach so wie es jetzt ist. Stört ja nicht weiter, es werden einfach alle Felder angezeigt.</p> https://forum.selfhtml.org/self/2014/nov/3/wenn-user-etwas-waehlt-weiteres-feld-anzeigen/1624086#m1624086 Auge auge8472@web.de 2014-11-10T14:24:05Z 2014-11-10T14:24:05Z Wenn User etwas wählt, weiteres Feld anzeigen <p>Hallo</p> <blockquote> <p>Wenn ein User auf die Seite geht, sollte das Feld</p> <pre><code class="block language-html"></code></pre> </blockquote> <blockquote> <p><div class="textfeld" id="familie"><br> <label for="familie">Familie</label><br> <input type="text" name="familie" id="familie" value="<?=(isset($_POST['familie'])) ? htmlspecialchars($_POST['familie']) :''?>"><br> </div></p> </blockquote> <pre><code class="block"> > > ausgeblendet sein, dieses habe ich mit > > ~~~css > #familie { > display:none; > } > </code></pre> <blockquote> <p>gemacht. Nun ist es auch weg. Wenn ich jetzt deinen jQuery Code benutzt, passiert leider nichts.</p> </blockquote> <p>Tja, das liegt wahrscheinlich wortwörtlich daran, dass er das Element mit der ID „familie“ nicht identifizieren kann. Eine ID muss dokumentweit eindeutig sein. Das ist sie bei dir aber nicht, weil du die ID (im hier gezeigten HTML-Schnipsel) zweimal verwendest.</p> <p>Tschö, Auge</p> <div class="signature">-- <br> Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.<br> Terry Pratchett, "Wachen! Wachen!"<br> ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}<br> <a href="http://termindbase.auge8472.de/" rel="nofollow noopener noreferrer">Veranstaltungsdatenbank Vdb 0.3</a> </div>