Ankündigung

Einklappen
Keine Ankündigung bisher.

Suchvorschläge

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchvorschläge

    Liebe Forumsgemeinde,

    ich bin gerade etwas am verzweifeln: ich steh vor der Herausforderung bei einem Textfeld Suchvorschläge anzeigen zu lassen (ähnlich wie man es von Google kennt). Anzeigen ist soweit auch kein Problem - jedoch ist es nicht möglich, die Vorschläge mithilfe der Tastatur/Maus auszuwählen und das Suchfeld damit zu vervollständigen. Nachstehend nun der Code:

    HTML:
    Code:
    <input id="searchField" type="text" autocomplete="off" onkeyup="showResult(this.value)"  onblur="hideSuggestions(this.value)"> 
     <div id="livesearch">
    JS in HTML:
    Code:
    function showResult(str)
    {	
    	document.getElementById("livesearch").style.visibility="visible";
    
    	if (str.length==0)
    	  { 
    	  document.getElementById("livesearch").innerHTML="";
    	  document.getElementById("livesearch").style.border="0px";
    
    	  return;
    	  }
    	$.get("livesearch.php?q="+str
    		function(data){
    			$("#livesearch").html(data);
    			$("#livesearch").css('border', '1px solid #A5ACB2');
    		}
    	); 
    function hideSuggestions(value) {
    	document.getElementById("livesearch").style.visibility="hidden";
    	document.getElementById("livesearch").innerHTML="";
    }
    PHP-File (livesearch.php)
    PHP-Code:
    ...
    //Anzuzeigende Suchvorschläge befinden sich in $resultsetS (Code wurde aus Gründen der Übersichtlichkeit entfernt).
    $showEntries 12;
    foreach (
    $resultsetS as $document ) {
        if(
    $showEntries>0) {
              
    $y=$document->title;
              
    $z=$document->notes;
                if (
    stristr($y,$q) || stristr($z$q))
                  {
                  
                  if (
    $hint=="") {
                  
                        
    $hint='<span class="searchterm"> '.$y.'</span>';
                        
    $showEntries--;
                  }
                  else  {
                    
    $hint=$hint.'</br><span class="searchterm"> '.$y.'</span>';
                    
    $showEntries--;
                    }
                  }
             }
      }
    }
    echo 
    $hint
    Google hat mich auf jquery-autocomplete gebracht. Versuche das zu integrieren haben jedoch nicht geklappt. Vermutlich bin ich sogar am richtigen Weg, aber zu unfähig es richtig zu integrieren.

    Ich wäre für jede Hilfe sehr dankbar!

    lg

  • #2
    Hast Du das hier genommen? http://jqueryui.com/autocomplete/
    Woran bist Du da gescheitert?

    Kommentar


    • #3
      Zitat von Pompei81 Beitrag anzeigen
      Hast Du das hier genommen? http://jqueryui.com/autocomplete/
      Woran bist Du da gescheitert?
      Vielen Dank für deine Antwort!
      Auf dem war ich schon - hab mich dann aber eher an http://jqueryui.com/autocomplete/#remote gehalten, da ich mir die Daten ja via ajax hole.
      Grundsätzlich habe ich aber das Resultset (von Livesearch.php) bereits im HTML-File schon, also sollte ich deinen Link verwenden können. Das einzige Problem was ich hierbei habe: Die Vorschläge sollen anhand vom Titel und von der Beschreibung der Datensätze ermittelt werden. (d.h. ich tippe ins Textfeld - und dabei soll es mir auch den Titel anzeigen, wenn der im Suchfeld-befindliche Text in der Beschreibung [oder im Titel] enthalten ist).

      Wie kann ich also "availableTags " von deinem Link so abwandeln, sodass ich nach Titel und einer Beschreibung suchen kann, aber nur der Titel angezeigt wird?

      (Ich hoffe, es ist nicht zu kompliziert formuliert - mittlerweile doch schon relativ spät.)

      Kommentar


      • #4
        Das muss halt search.php leisten
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          http://www.php-resource.de/forum/php...rschlaege.html

          Bitte beachte: http://www.php.de/php-einsteiger/ann..._Multipostings

          Kommentar


          • #6
            Zitat von nikosch Beitrag anzeigen
            Das muss halt search.php leisten

            Aber wie übergeb ich dem PHP-File das "resultset" (welches ich ja schon im HTML-File habe)? - Dzt. hole ich mir die selben Daten erneut raus (ist somit redundant). Kann man das nicht irgendwie übergeben?

            Ich habs nun mal umgebaut - funktioniert jedoch nicht (internal server error).

            JS in HTML-File:
            Code:
            	 $( "#searchField" ).autocomplete({
                        source: "livesearch.php?q="+str,
                        minLength: 2,
                        select: function( event, ui ) {
            
                        }
                    });
            PHP-File (livesearch.php)
            PHP-Code:
            foreach ($resultsetS as $document ) {
                if(
            $showEntries>0) {
                      
            $y=$document->title;
                      
            $z=$document->notes;
                        if (
            stristr($y,$q) || stristr($z$q))
                          {
                            
            $data = array();
                            
            $data['id'] = $y;
                            
            $data['value'] = $z;
                            
            $return_arr[] = $data;
                            
                          
                          if (
            $hint=="") {
                          
                                
            $hint='<span class="searchterm"> '.$y.'</span>';
                                
            $showEntries--;
                          }
                          else  {
                            
            $hint=$hint.'</br><span class="searchterm"> '.$y.'</span>';
                            
            $showEntries--;
                            }
                          }
                     }
              }
            }
            echo 
            json_encode($return_arr); 
            Wie kann ich machen, dass die Beschreibungen und der Titel durchsucht werden, allerdings nur der Titel im Suchfeld angezeigt wird? (vmtl. im select von jquery-autocomplete!?)


            @mermshaus: wollte den beitrag dort löschen - jedoch keinen funktion dafür gefunden. nun hab ich den beitrag mal editiert und den inhalt gelöscht. tut mir leid!

            Kommentar

            Lädt...
            X