Hochkomma über mehrere Kontextwechsel bringen
bearbeitet von
@@Linuchs
> Da werden bis zu fünf Vorschläge per Ajax geholt. Namen wie O'Nelly, also die Hochkommata machen Probleme.
Tja, das gehört auch kein ' rein, sondern ein Apostroph: O’Nelly. Aber für Nutzereingaben kannst du nichts.
> Das gibt Probleme:
>
> ~~~js
> onclick="document.getElementById('name').value='O'Nelly';
> ~~~
JavaScript-Code hat in HTML nichts zu suchen. Die Probleme sind hausgemacht.
Verwendent keine `on…`-Attribute, sondern registriere Eventhandler im JavaScript-Code per `addEventListener`.
> ~~~php
> echo ... htmlspecialchars($treffer['firma1'],ENT_QUOTES) ...
> ~~~
Damit sollten `'` und `"` escapet werden, AFAIS.
> ~~~php
> echo "<span onClick=\"".$klick."\">";
> ~~~
Es gibt keinen guten Grund dafür, Markup mit `echo` zu generieren.
[PHP in HTML schachteln](http://forum.de.selfhtml.org/archiv/2014/12/t219039/#m1510822), [nicht andersrum](http://forum.de.selfhtml.org/archiv/2014/12/t219039/#m1510825):
~~~php
<span onclick="<?php echo $klick; ?>">
~~~
oder kurz
~~~php
<span onclick="<?= $klick ?>">
~~~
Und schon müssen auch keine `"` als `\"` escapet werden.
Zu `onclick` gilt allerdings das oben Gesagte.
LLAP 🖖
--
Ist diese Antwort _anstößig_? Dann könnte sie [_nützlich_](http://forum.selfhtml.org/self/2015/jun/21/select-felder/1643860#m1643860) sein.