Marco_89 Geschrieben 16. Juli 2010 Teilen Geschrieben 16. Juli 2010 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 16. Juli 2010 Teilen Geschrieben 16. Juli 2010 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"] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 23. August 2010 Autor Teilen Geschrieben 23. August 2010 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'); } }; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 23. August 2010 Teilen Geschrieben 23. August 2010 Öhm ich hab leider nicht verstanden was du meinst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 23. August 2010 Autor Teilen Geschrieben 23. August 2010 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 } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 24. August 2010 Teilen Geschrieben 24. August 2010 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 25. August 2010 Autor Teilen Geschrieben 25. August 2010 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 25. August 2010 Teilen Geschrieben 25. August 2010 und womit soll dein script die antwort von database.php verarbeiten? gemeint ist die onreadystatechange methode der xmlHttp klasse XMLHttpRequest ? Wikipedia nachdem ich mir nun doch mal die 5 minuten zeit genommen habe und mir die Ext Api angesehen hab. warum benutzt du nicht die ajax klasse von Ext? ExtJS 3.2.1 API Documentation Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 25. August 2010 Autor Teilen Geschrieben 25. August 2010 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??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 25. August 2010 Teilen Geschrieben 25. August 2010 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 25. August 2010 Autor Teilen Geschrieben 25. August 2010 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 25. August 2010 Teilen Geschrieben 25. August 2010 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 ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Marco_89 Geschrieben 25. August 2010 Autor Teilen Geschrieben 25. August 2010 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 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.