Veröffentlicht 20. Juli 201114 j Hallo, ich möchte gerne ein Suchfeld erstellen, welches Datenbankbenutzer auslist. So wie bei Facebook. Wie funktioneirt so etwas? gibt es eventuell eine gute Seite dafür? danke an alle
20. Juli 201114 j ich bin schon ein bisschen weiter gekommen, aber leider funktionert es nicht. woran liegt der fehler. ich will, dass alle namen der tabelle mitglieder gesucht werden können. <html> <head> <title>Ajax Suche</title> <script type="text/javascript"> function searchFor(suchbegriff){ var xmlHttp = null; // Mozilla, Opera, Safari sowie Internet Explorer 7 if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } if (!xmlHttp) { // Internet Explorer 6 und älter try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlHttp = null; } } } // Wenn das Objekt erfolgreich erzeugt wurde if (xmlHttp) { var url = "suche.php"; var params = "suchbegriff="+suchbegriff; xmlHttp.open("POST", url, true); //Headerinformationen für den POST Request xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", params.length); xmlHttp.setRequestHeader("Connection", "close"); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { // Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben document.getElementById("ergebnis").innerHTML = xmlHttp.responseText; } }; xmlHttp.send(params); } } </script> </head> <body> <input type="text" onkeyup="searchFor(this.value);"/> <div id="ergebnis"></div> </body> </html> [PHP] [PHP] <?php // Verbindung $server = "localhost"; $benutzername = "xxxxxx"; $passwort = "xxxxxx"; $datenbank = "xxxxxx"; // Server Verbindung herstellen mysql_connect($server,$benutzername,$passwort) or die ("Keine Verbindung moeglich"); // Datenbank Verbidung mysql_select_db($datenbank) or die ("Die Datenbank existiert nicht"); $tabelle = "mitglieder"; if ($_POST["suchbegriff"]){ // Mysql Abfrage wird gespeichert mit den Notwendigen Parameter $sql = "SELECT * FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')"; // Mysql Abfrage wird durchgeführt $result = mysql_query($sql); // Suchbegriff wird ausgegeben echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>"; // Ergebnis wird ausgegeben mit Zeilenumbruch while($row = mysql_fetch_object($result)){ echo utf8_encode($row->titel); echo "<br/>"; } } ?> [/PHP]
20. Juli 201114 j sorry für die schlechte darstellung, hier nochmal der code <html> <head> <title>Ajax Suche</title> <script type="text/javascript"> function searchFor(suchbegriff){ var xmlHttp = null; // Mozilla, Opera, Safari sowie Internet Explorer 7 if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } if (!xmlHttp) { // Internet Explorer 6 und älter try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlHttp = null; } } } // Wenn das Objekt erfolgreich erzeugt wurde if (xmlHttp) { var url = "suche.php"; var params = "suchbegriff="+suchbegriff; xmlHttp.open("POST", url, true); //Headerinformationen für den POST Request xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("Content-length", params.length); xmlHttp.setRequestHeader("Connection", "close"); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { // Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben document.getElementById("ergebnis").innerHTML = xmlHttp.responseText; } }; xmlHttp.send(params); } } </script> </head> <body> <input type="text" onkeyup="searchFor(this.value);"/> <div id="ergebnis"></div> </body> </html> [/PHP] [PHP] <?php // Verbindung $server = "localhost"; $benutzername = "xxxxxx"; $passwort = "xxxxxx"; $datenbank = "xxxxxx"; // Server Verbindung herstellen mysql_connect($server,$benutzername,$passwort) or die ("Keine Verbindung moeglich"); // Datenbank Verbidung mysql_select_db($datenbank) or die ("Die Datenbank existiert nicht"); $tabelle = "mitglieder"; if ($_POST["suchbegriff"]){ // Mysql Abfrage wird gespeichert mit den Notwendigen Parameter $sql = "SELECT * FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')"; // Mysql Abfrage wird durchgeführt $result = mysql_query($sql); // Suchbegriff wird ausgegeben echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>"; // Ergebnis wird ausgegeben mit Zeilenumbruch while($row = mysql_fetch_object($result)){ echo utf8_encode($row->titel); echo "<br/>"; } } ?>
21. Juli 201114 j so, die suche in der datenabnk nach den vorhandenen namen funktoniert einwandfrei. ich will, dass das suchfeld aufklpatt und die namen anzeigt wie bei facebook. ich bekome es einfach nicht hin, hab schon alles ausprobiert. Start.php <table width="100%" border="1"> <tr> <td class="leiste"><img src="images/logo.jpg" class="logo"> <input class="search" type="text" onKeyUp="(this.value.length >= 2) ? searchFor(this.value) : '';"><div id="ergebnis"></div> <a href="logout.php"><img src="images/logout.jpg" class="logout"></a> </td> </tr> </table> [/PHP] Suchen.php [PHP] <?php // Verbindung $server = "xxxxx"; $benutzername = "xxxxx"; $passwort = "xxxxx"; $datenbank = "xxxxx"; // Server Verbindung herstellen mysql_connect($server,$benutzername,$passwort) or die ("Keine Verbindung moeglich"); // Datenbank Verbidung mysql_select_db($datenbank) or die ("Die Datenbank existiert nicht"); $tabelle = "mitglieder"; if ($_POST["suchbegriff"]){ // Mysql Abfrage wird gespeichert mit den Notwendigen Parameter $sql = "SELECT id, name FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')"; // Mysql Abfrage wird durchgeführt $result = mysql_query($sql); // Suchbegriff wird ausgegeben echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>"; // Ergebnis wird ausgegeben mit Zeilenumbruch //while($row = mysql_fetch_object($result)){ //echo utf8_encode($row->Name); //echo "<br/>"; echo'<?xml version="1.0" encoding="UTF-8"?> <ergebnis>'; while($person = mysql_fetch_object($result)) { echo "<a href=profil.php?user=$person->id>$person->name</a>"; echo "<br>"; } } ?> style.css (class: search) .search { font-weight:bold; position:absolute; margin-top:10px; color:#000; margin-left:250px; } [/PHP]
22. Juli 201114 j die hatte ich auch schon ausprobiert, aber leider ohne erfolg. ich liegt eigentlich nur am design, nicht am quellcode. ich will nur, dass wenn man etwas sucht, das ergebnis diretk darunter in einem aufklappmenü erscheint und die seite damit so zu sagen abdeckt. wie bei facebook suche.
22. Juli 201114 j Dann musst du die Position von dem DIV in der CSS Datei auf "absolute" stellen. Dann dürfte das darüber gelegt werden.
22. Juli 201114 j nein, wird es leider nicht. Wie kann ich es so demonstrieren, dass das suchfeld nach dem sucenn ein "aufklappmenü" bekommt mti den suchergebnissen. das "aufklappmenü" soll dann über dem text natürlich im hintergrund sein
22. Juli 201114 j ich habe jezt das input feld search und die ausgabe div in eine form gepackt, funktioneirt auch. nur wenn ich jetzt suche, dann schreibt er mir das ergebnis untereinander wie ich es will, nur hinter den suchergebnissen gefindet sich noch die anderen schriften von der seite, die sollen weg. besser mal selber anschauen www.************.org benutzer: test passwort: test und nach tes suchen danke
22. Juli 201114 j sorry, hab gerade übesehen, dass man link einfügen kann. hier nochmal der link zu meiner setie http://www.************.org
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.