Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

Ich bin gerade dabei mich in ExtJS einzuarbeiten, was mir bisher sehr gut gelungen ist und ich das angefangene projekt meiner Vorgängering verstanden habe(Aufbau des Codes und der Zusammenhänge der *.js Dateien) Mein Problem ist nun folgendens: Ich habe ein Textfield in welches ein Hostname eingetragen wird, nach betätigen der Eingabetaste soll dann ein Query an die Datenbank gestellt werden, um den Hostname auszulesen. Ich kann den Wert des Textfields schon ermitteln, nur wie bekomme ich eine Datenbankconnection hin?

Kann mir da jemand vielleicht helfen?

Danke im Voraus

Geschrieben

Um Datenbanken einzubinden würde ich eine serverseitige Sprache empfehlen.

Clientseitige Sprachen sind dafür nicht vorgesehen. Ist auch keine gute Idee, weil JavaScript browserseitig läuft und der Quellcode ausgelesen werden kann (also Passwörter und so).

Du kannst beispielsweise PHP benutzen um deine Datenbankverbindungen zu managen.

Ich habe auch eine Anwendung mit ExtJS erstellt. Da habe ich auch PHP benutzt um die Datenbanken anzusprechen.

Die Parameter kannst du so ungefähr an deine PHP-Dateien übergeben:


// TODO: Instanz von XMLHttpRequest erzeugen

function saveData() {

	if (this.xmlHttp) {


		this.xmlHttp.open('POST', 'scripts/saveData.php');

		this.xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

		this.xmlHttp.send('vorname=deinValue1&nachname=deinValue2');

	}


};

Innerhalb der PHP-Datei an die du die Daten gesendet hast, kannst du dann so auf die Werte zugreifen:

$_POST["vorname"] oder $_POST["nachname"]

  • 1 Monat später...
Geschrieben

Erstmal danke für die schnelle Antwort.

ich brauch doch eigentlich nur diese zeile anpassen oder?

"this.xmlHttp.send('vorname=deinValue1&nachname=deinValue2');"

es ist ja so, dass ich bereits daten aus datenbank abrufe und mir ausgebene lassen aber nur wenn ich auf ein knopf klicke, das heißt der algorithmus ist schon vorhanden in einer existierenden php datei. und wenn ich auf ein enter event beim textfield reagiere bekomme ich zwar den wert aber der übermittelt nicht den wert an die datenbank also mit dem script hier:

function saveData() {

if (this.xmlHttp) {

this.xmlHttp.open('POST', 'scripts/saveData.php');

this.xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

this.xmlHttp.send('vorname=deinValue1&nachname=deinValue2');

}

};

Geschrieben

schau mal, du hast mir diesen codeschnipsel geschickt

function saveData() {

if (this.xmlHttp) {

this.xmlHttp.open('GET', 'database.php');

this.xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

this.xmlHttp.send('gname=searchvalue');

so. in meinem quellcode habe ich den schnipsel an der stelle eingesetzt, wo ich das enter auf der tastatur abfangen(weil ich ja ein wert in einem textfield schreibe um was zu suchen), doch leider passiert nichts, d.h. es werden die daten glaube ich nciht gesendet.

kurz gesagt es soll so aussehen:

webanwendung(wo user suchwert eingibt) -> datenbank php(wert wird hierhin übermittelt) -> Datenbank (gesuchter wert wird von der datenbank an webanwendung zurück gegeben).

das mit $_POST und so das weiss ich so weit stecke ich auch in php. nur mit extjs bin ich noch bissl unsicher.

hier nochmal die codestelle an der ich dein schnipsel kopiert habe

listeners: {

"keydown": function(field, event) {

if(event.getKey() == 13){

var searchvalue = Ext.getCmp("suche").getValue();

AB HIER KOMMT DEIN SCHNIPSEL

}

Geschrieben

und du hast auch eine database.php?

hat dein request object ein callback um die antwort des php scripts zu verarbeiten?

ich kenn Ext zwar nicht, kann mir aber auch nicht vorstellen das es darauf verzichten kann.

Geschrieben

wie meinst du das mit callback funktion? also bei mir sieht es so aus dass ich mir den wert aus dem textfeld hole mit var searchvalue = Ext.getCmp("suche").getValue();

und dann führe ich den oben aufgeführten xmlhttprequest durch und die connection zur datenbank mach ich über eine database.php. dort ist der ablauf beschrieben wo welche daten herkommen. danach sollen die daten wieder an meine webanwendung zurück gegeben werden und in einer tabelle ausgegeben werden, wie es jetzt auch gemacht wird nur über ein button halt.

Geschrieben

ah dafür ist die onreadystatechange funktion ich hab mcih schon gewundert. hm ich habe in der extjs api noch nicht reingeschaut werde ich mal machen. und da gibt es wirklich eine klasse die mir daten sendet und liefert???

Geschrieben

hast du mal auf den link ganz unten geklickt? da ist sogar ein beispiel.

als success gibst du eine funktion an die ausgeführt wird wenn kein fehler auftritt, also kommt da das zeug rein das die antwort verarbeitet.

bei failure halt fehlerbehandlung / fehlermeldung ausgeben.

param sind dann die post parameter die an das script übergeben werden sollen.

Geschrieben

ja das hab ich grade auch verstanden :) nur ich hab ja ne zweite quellcode datei, wo der algorithmus schon drinne ist also das er die daten verarbeitet. den muss ich dann ja wieder kopieren ist ja ****e :S

Geschrieben

naja der algo muss ja irgendwie aufgerufen werden.

dann kannst du entweder diesen aufruf direkt bei success angeben oder musst noch ne kleine funktion basteln die die daten aufbereitet und dann den algo aufruft.

aber da ich weder weiß wie Ext.Ajax die zurückkommenden daten an die "sucess"-funktion liefert noch wie der algo diese gerne hätte, kann ich dir dazu nicht allzuviel sinnvolles sagen ^^

Geschrieben

ja gut ok kein problem, aber du hast mir schon ein stück weitergeholfen danke ;)

man findet immer wieder nette leute die nicht rumpöblen oder wichtig tun, wie ich das schon in anderen Foren gelesen hab :P

ja ich hab garnciht nachgedacht dass ich die funktion aufrufen kann -.- heute ist i-wie nicht mein tag und in extjs reinzudenken ist auch ****e.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...