Rolf B: Inputfeld triggern

Beitrag lesen

Hallo Jörg,

okay. Das ist ein ziemlich anderer Code 😀

(1) die ID kannst Du beeinflussen, indem Du die Option randomElement setzt. Über die Option inputClass kannst Du auch die Klasse beeinflussen.

(2) ein API gibt's nicht, und das einzige Event, auf das gelauscht wird, ist keydown. Aber nur mit bestimmten KeyCodes. D.h. einfach nur .trigger reicht nicht.

Schaun wir mal:

  • Ich würde Dir empfehlen, das <BR> vor dem <span> in Zeile 158 zu entfernen. Das bringt die Anzeige unnötig in Bewegung - keine gute Idee.
  • Ansonsten scheint es zu genügen, keydown zu triggern. Parameter sind nicht nötig.
  • Du solltest dem Parameter aber noch einen addslashes-Aufruf gönnen. Andernfalls fliegt der Code auf die Nase, wenn ein ' irgendwo in der Eingabe ist oder ein \ am Ende steht. Eventuell injiziert Dir sonst sogar jemand PHP Schadcode. Bobby Tables lässt grüßen… (Ja, ich weiß, dass hier kein SQL läuft. Aber PHP-Injektion gibt es auch.)
$('.qs_input').val('".addslashes($_REQUEST['mysearch'])."').trigger('keydown');

(Edit: Punkt ergänzt)

Grundsätzlich würdest Du Dir das Leben vermutlich leichter machen, wenn Du JavaScript nicht als String generierst, sondern für die Erzeugung des Script-Statements aus PHP aussteigst. An der Stelle, wo Du den Request-Parameter brauchst, steigst Du mit <?= ... ?> kurz wieder in PHP ein, um den Wert zu ermitteln. Es muss <?= sein, nicht <?php, weil Du an der Stelle ja nur einen Wert brauchst und keine Befehle ausführen willst.

   // irgendein PHP gedöns
?>
<script>
   $(function() {
      $('table#table_example tbody tr').quicksearch( {
         position... attached... labelText... loaderText...
      });
      $('.qs_input').val('<?= addslashes($_REQUEST['mysearch']) ?>')
                    .trigger('keydown');
   });
</script>
<?php
   // weiter mit PHP

Rolf

--
sumpsi - posui - obstruxi