JS-Array aus SQL-Datensatz

LRK

Erfahrenes Mitglied
Grüß Gott.

Ich möchte gerne für ein firmeninternes Eingabeformular eine Echtzeitkontrolle einrichten, wechle die in einem Feld eingebenen Werte auf das Vorhandensein in der Datenbank überprüft.

Ich dachte, wenn ich ein Array mit den Daten aus der Datenbank gefüttert kriege, kann ich dessen Werte dann einfach kontrollieren und gegebenenfalls eine Meldung anzeigen lassen. Leider scheitert es schon an der Erstellung des Arrays. Ich versuchte in etwa so vorzugehen:
Javascript:
var meinArray = ["wert 1","wert 2","wert 3"];
So, den Inhalt zwischen den Klammer wollte ich also durch einen PHP-Baustein generieren lassen, welcher die Werte aus der Datenbank ausliest und in eben exakt der gezeigten Form ausgibt, komplett mit Anführungszeichen und Kommata. Also in etwa diese Schreibweise:
Javascript:
var meinArray = [<?php mein PHP-Code ?>];
Der PHP-Code funktioniert und bei einer echo-Ausgabe werden die Inhalte auch erfolgreich in der Webseite angezeigt aber wenn ich ihn eben wie gezeigt in die Array-Generierung einfüge, klappt's nicht. Wie könnte ich da vorgehen?
 
Zuletzt bearbeitet:
Guten Morgen

Wird der PHP-Output direkt als String ausgegeben? Wie befüllst du nicht direkt einen array?
(pseudocode)
PHP:
$dataarray=array();
while($row= mysql_fetch_object($source)){
         $dataarray[]=$row->field;
}
print_r($dataarray);

$jsarray= json_encode($dataarray);
DA du ja einen JS Array möchtest, würde ich JSON vorschlagen.
HTML:
var  myArray = <?php echo $jsarray;  ?>
 
Hallo xloouch.

Ich habe gerade einen Ansatz verfolgt, in dem ich das Array mit .push() schrittweise erweiterte und als ich in der SQL-Anweisung ein humanes Limit einsetzte, fing es an zu funktionieren. Es hat den Anschein als ob die Zahl der Einträge, die JavaScript verkraften kann, einfach sehr gering ist. In der aktuell verwendeten Tabelle stehen 13.828 Datensätze...

Nuja, der technische Ansatz war also durchführbar, wenn auch nicht allzu elegant. Ich probier' mal noch etwas rum und versuche mich mit deinen Vorschlägen auseinanderzusetzen. Danke
 
eventuell könntest du über einen ajax.call (post oder get) die daten nach eingabe von buchstaben (als beispiel) nach und nach aussortieren. (analog wie die funktionweise der Google-Such-Maske)
 
Hm, bei etwas über 1200 Einträgen kommen von JavaScript keine Rückmeldungen mehr. Mal nachforschen, wie viele Einträge bei den eigentlich zu verwendenden Tabellen herumkommen. Mit Ajax kenn' ich mich leider nicht aus, mal reinlesen.
 
Zurück