onkeyup an php Datei als Post übermitteln
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
array
ausgeben
buchstabe
code
dank
datei
datum
erstellen
post
safari
schleife
senden
setzen
status
taste
text
typ
type
url
-
Jedes mal, wenn eine Taste gedrückt wird, soll der Buchstabe in ein Array geschrieben werden und das als "Wort" gesucht werden... Das Array und das Suchen ist kein Problem, aber wie zum Teufel übermittel ich den mittels onkeyup und post oder get, dass jedesmal wenn man die Taste haut das Array erweitert werden soll und die Suche neu angefangen werden soll?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Warum eine Array? Nen String tut es auch.
Mit Javascript machst du sowas...
http://api.jquery.com/keyup/
zusammen mit einem Ajax-Request:
http://api.jquery.com/jQuery.ajax/
Gruß -
Das funktioniert auch über einen einfachen XMLHttpRequest:
function createXMLHttpRequest() { if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } else { // code for IE6, IE5 //return new ActiveXObject("Microsoft.XMLHTTP"); try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { } try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { } } alert("XMLHttpRequest not supported!"); } // GET-Anfrage // XMLHttpRequest erstellen, sodass es in jedem Browser funktioniert var request = createXMLHttpRequest(); // Request-Typ und URL setzen request.open("GET", "/url/zur/php-datei.php", false); // Request senden (synchron) request.send(); // Ergebnis auswerten if(request.status == 200) { var doc = request.responseText; if(doc.length != 0) { window.alert('Text: ' + request.responseText); } } // POST-Anfrage var request = createXMLHttpRequest(); request.open("POST", "/url/zur/php-datei.php", false); request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); request.send("irgendwelche Daten, die per POST übertragen werden sollen"); if(request.status == 200) { var doc = request.responseText; if(doc.length != 0) { window.alert('Text: ' + request.responseText); } }
-
hackyourlife schrieb:
Das funktioniert auch über einen einfachen XMLHttpRequest:function createXMLHttpRequest() { if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } else { // code for IE6, IE5 //return new ActiveXObject("Microsoft.XMLHTTP"); try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { } try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { } } alert("XMLHttpRequest not supported!"); } // GET-Anfrage // XMLHttpRequest erstellen, sodass es in jedem Browser funktioniert var request = createXMLHttpRequest(); // Request-Typ und URL setzen request.open("GET", "/url/zur/php-datei.php", false); // Request senden (synchron) request.send(); // Ergebnis auswerten if(request.status == 200) { var doc = request.responseText; if(doc.length != 0) { window.alert('Text: ' + request.responseText); } } // POST-Anfrage var request = createXMLHttpRequest(); request.open("POST", "/url/zur/php-datei.php", false); request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); request.send("irgendwelche Daten, die per POST übertragen werden sollen"); if(request.status == 200) { var doc = request.responseText; if(doc.length != 0) { window.alert('Text: ' + request.responseText); } }
Danke soweit.. Wenn ich das jetzt richtig verstehe sende ich mittels request.send die Daten an die Datei, in der Datei kann ich sie dann in ein Array lesen und in einer while schleife ausgeben? -
kill-a-teddy schrieb:
Du legst bei
Wenn ich das jetzt richtig verstehe sende ich mittels request.send die Daten an die Datei, in der Datei kann ich sie dann in ein Array lesen und in einer while schleife ausgeben?
fest ob du eine GET oder eine POST-Anfrage stellen möchtest. Bei GET kannst du natürlich keine Daten mitschicken, außer GET-Tags (indem du bei der URL ein ?name=wert anhängst).request.open()
Bei POST musst du den Content-Typ festlegen. Die Daten die du dann verschickst (mit
) werden genau so übertragen. Wenn du das Beispiel von mir nutzt:request.send(daten);
wird der Text genau so übertragen. Im PHP-Script greifst du in diesem Fall nicht über $_POST auf die Daten zu, sondern du bekommst diesen Text so:request.open("POST", "/url/zur/php-datei.php", false); request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); request.send("irgendwelche Daten, die per POST übertragen werden sollen");
$daten = file_get_contents('php://input');
Natürlich kannst du auch den Content-Typ
benutzen und die Daten dann nach dem Musterapplication/x-www-form-urlencoded
übertragen auf die du mit $_POST zugreifen kannst. Die Daten dabei sind genau so aufgebaut wie in einer URL nach dem '?'name=wert&anderer+name=weiterer+Wert
Warum in ein Array lesen? Was meinst du mit der while-Schleife? Was möchtest du ausgeben?
Beitrag zuletzt geändert: 20.2.2012 11:31:16 von hackyourlife -
hackyourlife schrieb:
Warum in ein Array lesen? Was meinst du mit der while-Schleife? Was möchtest du ausgeben?
Die letzte Beschreibung hat schon gereicht, danke. :)
Btw. Danke an euch beide ^^
Kann geschlossen werden -
ich würde mir das gut überlegen, bei jedem buchstaben einen request loszuschicken - das kann ganz schön performance kosten.
überprüf das doch beim verlassen des feldes? -
Ich denke mal, er möchte sowas bauen wie es Google bei seiner Sucheingabe benutzt. Also Vorschläge machen während man noch tippt.
-
Leute...
Das Problem ist schon längst gelöst und die beiden Beiträge über mir einschließlich diesem Beitrag sind völlig überflüssig und eigentlich nur Spam...
Schließt es endlich und löscht die drei Beiträge bitte! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage