tag:forum.selfhtml.org,2005:/selfWert per jQuery abfragen – SELFHTML-Forum2017-03-07T14:49:24Zhttps://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689236#m1689236Achoteinfachachot@gmail.com2017-03-07T08:38:16Z2017-03-07T08:38:16ZWert per jQuery abfragen<p>Hallo,</p>
<p>ich habe ein Feld</p>
<pre><code class="block language-html"><select name="rechnungsadresse[1][id]" id="rechnungsadresse[1][id]>
</code></pre>
<p>und habe dazu folgenden jQuery Code</p>
<pre><code class="block language-js"><span class="token operator"><</span><span class="token operator">?</span>php <span class="token keyword">for</span> <span class="token punctuation">(</span>$i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> $i <span class="token operator"><=</span> $anzahl<span class="token punctuation">;</span> $i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">?</span><span class="token operator">></span>
<span class="token keyword">var</span> <span class="token function-variable function">updateSelect</span> <span class="token operator">=</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 function">$</span><span class="token punctuation">(</span><span class="token string">"#rechnungs_daten[<?php echo $i;?>][id]"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">load</span><span class="token punctuation">(</span><span class="token string">"inc/auslesen-rechnungsadresse.php"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token literal-property property">rechnungsadresse</span><span class="token operator">:</span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token string">'#rechnungsadresse[<?php echo $i;?>][id]'</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 punctuation">)</span><span class="token punctuation">;</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">"#rechnungsadresse[<?php echo $i;?>][id]"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">change</span><span class="token punctuation">(</span>updateSelect<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator"><</span><span class="token operator">?</span>php <span class="token punctuation">}</span> <span class="token operator">?</span><span class="token operator">></span>
</code></pre>
<p>Es tut sich leider nichts. Auch wird mir kein Fehler ausgegeben. Könnt ihr mir sagen, wo der Fehler ist?</p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689267#m1689267Tabellenkalk2017-03-07T11:36:10Z2017-03-07T11:36:10ZWert per jQuery abfragen<p>Hallo,</p>
<blockquote>
<p>Könnt ihr mir sagen, wo der Fehler ist?</p>
</blockquote>
<p>In deinem Konzept. Kannst du erstmal ohne Code beschreiben was du erreichen möchtest?</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689284#m1689284Rolf b2017-03-07T14:02:18Z2017-03-07T14:02:18ZWert per jQuery abfragen<p>Leg einen Container um die Eingabefelder und registriere das Change-Event dort. Es blubbert von select dahin hoch.</p>
<p>Deiner Handler-Funktion gibst Du einen Parameter namens <code>event</code>. Darin findest Du das Objekt, mit dem jQuery Dich über die Einzelheiten des Events informiert. Das select, das sich geändert hat, bekommst Du per event.target.</p>
<p>Dein Code funktioniert deswegen nicht, weil [] in einer ID zwar erlaubt ist, von jQuery aber als Attributselektor interpretiert wird. Wenn Du mit jQuery arbeiten willst, lass diese Zeichen aus IDs weg (im name ist das was anderes, da brauchst Du die eckigen Klammern damit PHP dir ein Array unter _GET bzw _POST bereitstellt). Nimm als ID z.B. <code>rechnungsadresse_1</code> oder <code>rechnungsadresse_1</code>, aber mit $("# rechnungsadresse[1]") fragst Du jQuery nach einem Element mit id='rechnungsadresse', das ein Attribut namens '1' hat.</p>
<p><em>Rolf</em></p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689271#m1689271Achoteinfachachot@gmail.com2017-03-07T11:51:21Z2017-03-07T11:51:21ZWert per jQuery abfragen<p>Hallo,</p>
<p>ich habe ein bzw. mehrere Dropdown-Felder wo ich eine Adresse auswählen kann. Diese kennzeichne ich über</p>
<pre><code class="block language-html">name="adresse[<span class="token prolog"><?php echo $i;?></span>][id]"
</code></pre>
<p>Wenn eine Adresse ausgewählt wurde, soll im Feld</p>
<pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</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>rechnungs_daten[<?php echo $i;?>]<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>div</span><span class="token punctuation">></span></span>
</code></pre>
<p>die dazugehörige Adresse ausgegeben werden.</p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689277#m1689277Tabellenkalk2017-03-07T12:57:29Z2017-03-07T12:57:29ZWert per jQuery abfragen<p>Hallo,</p>
<p>dein Ansatz, in einer Schleife für jeden Datensatz eine Funktion anzulegen ist jedenfalls Quatsch. Du benötigst <strong>eine</strong> Funktion, der du die Datensatznummer übergibst und die dann den entsprechenden Datensatz zurückliefert.</p>
<p>Gruß<br>
Kalk</p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689285#m1689285Julius2017-03-07T14:08:14Z2017-03-07T14:08:14ZWert per jQuery abfragen<p>Hallo Rolf,</p>
<blockquote>
<p>Dein Code funktioniert deswegen nicht, weil [] in einer ID zwar erlaubt ist, von jQuery aber als Attributselektor interpretiert wird. Wenn Du mit jQuery arbeiten willst, lass diese Zeichen aus IDs weg […]</p>
</blockquote>
<p>Kann man nicht auch alternativ an jQuery vorbei mit <code>document.getElementByID</code> hantieren?</p>
<p>Gruß<br>
Julius</p>
<div class="signature">-- <br>
Der Berliner ist der Pfannkuchen des Westens
</div>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689286#m1689286Rolf b2017-03-07T14:13:24Z2017-03-07T14:24:25ZWert per jQuery abfragen<p>Natürlich kann man das. Damit gibt man dann aber die knappe jQuery-Syntax auf, und man vermischt jQuery und direkten DOM Zugriff. Wenn man mit jQuery erstmal anfängt, sollte man es auch konsequent nutzen.</p>
<p>Und es gibt ja auch Stimmen, die vorschlagen, man sollte generell querySelector statt getElementById verwenden, um ein einheitliches API zu haben. Oder war's nur eine Stimme, die aber laut? Weiß grad nicht mehr... ;-)</p>
<p><em>Rolf</em></p>
<p>Nachtrag: Man kann auch escapen, <a href="https://www.w3.org/TR/CSS21/syndata.html#characters" rel="nofollow noopener noreferrer">hier ist die Spec</a>.</p>
<p>Das komplizierte ist nur, dass man in JS doppelt escapen muss, also z.B.</p>
<p>$("#rechnungsadresse\\[1\\]\\[id\\]").load(...)</p>
<p>weil zunächst mal Javascript das \ als Escape interpretiert. Und hier im Forum muss ich dann vierfach escapen... ohje.</p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689288#m1689288Julius2017-03-07T14:38:26Z2017-03-07T14:38:26ZWert per jQuery abfragen<p>Hallo Rolf,</p>
<blockquote>
<p>Natürlich kann man das. Damit gibt man dann aber die knappe jQuery-Syntax auf, und man vermischt jQuery und direkten DOM Zugriff. Wenn man mit jQuery erstmal anfängt, sollte man es auch konsequent nutzen.</p>
</blockquote>
<p>Konsistenz, ist ja logisch.</p>
<blockquote>
<p>Und es gibt ja auch Stimmen, die vorschlagen, man sollte generell querySelector statt getElementById verwenden, um ein einheitliches API zu haben. Oder war's nur eine Stimme, die aber laut? Weiß grad nicht mehr... ;-)</p>
</blockquote>
<p>Ich habs mitbekommen, das war irgendwo in dem Monster-<a href="https://forum.selfhtml.org/self/2017/mar/3/frage-zum-wiki-artikel-grundlagen-der-programmierung/1688705#m1688705" rel="noopener noreferrer">Thread</a> zu den JavaScript-Tutorials im Wiki...</p>
<p>Außer dem Verlust Konsistenz (keine Selektoren im CSS-Stil) hat man aber wohl keine wirklichen Nachteile, wenn man es nicht macht.</p>
<blockquote>
<p>Nachtrag: Man kann auch escapen, <a href="https://www.w3.org/TR/CSS21/syndata.html#characters" rel="nofollow noopener noreferrer">hier ist die Spec</a>.</p>
<p>Das komplizierte ist nur, dass man in JS doppelt escapen muss, also z.B.</p>
<p>$("#rechnungsadresse\\[1\\]\\[id\\]").load(...)</p>
</blockquote>
<p>Autsch.</p>
<blockquote>
<p>weil zunächst mal Javascript das \ als Escape interpretiert. Und hier im Forum muss ich dann vierfach escapen... ohje.</p>
</blockquote>
<p>Autsch. Autsch.</p>
<p>Gruß<br>
Julius</p>
<div class="signature">-- <br>
Der Berliner ist der Pfannkuchen des Westens
</div>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689290#m1689290Rolf b2017-03-07T14:43:48Z2017-03-07T14:43:48ZWert per jQuery abfragen<blockquote>
<p>Autsch.</p>
<p>Autsch. Autsch.</p>
</blockquote>
<p>Sorry. *pflaster reich*</p>
<p><em>Rolf</em></p>
https://forum.selfhtml.org/self/2017/mar/7/wert-per-jquery-abfragen/1689291#m1689291Julius2017-03-07T14:49:24Z2017-03-07T14:49:40ZWert per jQuery abfragen<p>Hallo Rolf,</p>
<p>fällt mir gerade erst ein; ein inline-Codeblock erspart dir das Escapen: also <code>$("#rechnungsadresse\\[1\\]\\[id\\]").load(...)</code> statt $("#rechnungsadresse\[1\]\[id\]").load(...)</p>
<p>Gruß<br>
Julius</p>
<div class="signature">-- <br>
Der Berliner ist der Pfannkuchen des Westens
</div>