Avatar billede jetobi Juniormester
12. juni 2011 - 19:14 Der er 2 kommentarer og
1 løsning

javascript søgning

Jeg har denne kode:
function showHint(str)
{
var xmlhttp;
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","gethint.asp?q="+str,true);
xmlhttp.send();
}


<h3>Start typing a name in the input field below:</h3>
<form action="">
First name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions: <a href=""><span id="txtHint"></span></a></p>

OG en php side her :
<?php
// Fill up array with names

mysql_connect("xx", "xxx", "xxx")
or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
$result = mysql_query("SELECT * FROM tutor")
or die(mysql_error()); 

while($row = mysql_fetch_array( $result )) {

    $adresse = $row['adresse'];
   
       
$a[]="$adresse";
}

//get the q parameter from URL
$q=$_GET["q"];

//lookup all hints from array if length of q>0
if (strlen($q) > 0)
  {
  $hint="";
  for($i=0; $i<count($a); $i++)
    {
    if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
      {
      if ($hint=="")
        {
        $hint=$a[$i];
        }
      else
        {
        $hint=$hint." , ".$a[$i];
        }
      }
    }
  }

// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
  {
  $response="no suggestion";
  }
else
  {
  $response=$hint;
  }

//output the response
echo $response;
?>


Når mit javascript finder det jeg søger, gad jeg godt kunne lave et link til det samme som eks <a href=""><span id="txtHint"></a> er der nogen mulighed for at lave denne txtHint om til noget php, eller noget andet så man kan bruge den til href?
Ligesom denne torturial http://www.w3schools.com/ (...)
men kan ikke finde ud af at lave en database coonection.? med den her torturial fordi det er en xml connection?
Avatar billede olsensweb.dk Ekspert
12. juni 2011 - 19:38 #1
>Ligesom denne torturial
hvilken torturial ?? du linker til hoved siden.

det du søger er php autocomplete, dvs du skal sette dig ind i AJAX
du kan prøve at skimme Deres tut igennem, http://www.w3schools.com/php/php_ajax_intro.asp
kig feks på dette eks: http://www.w3schools.com/php/php_ajax_php.asp , array et skal selvføgelig bare være en database
Avatar billede olsensweb.dk Ekspert
13. juni 2011 - 15:17 #2
function showHint(str){
    if (str.length==0) {
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            // http://www.w3schools.com/jsref/jsref_split.asp
            js_ar = xmlhttp.responseText.split(",");
            var lng = js_ar.length;                   
            var html="";
            for (var i = 0; i < lng; i++) {               
                html += '<a href="'+js_ar[i]+'">'+ js_ar[i] +'<\/a>';
                html += ' ';                   
            }               
            document.getElementById("txtHint").innerHTML = html;   
        }

    }
    xmlhttp.open("GET","gethint.php?q="+str,true);
    xmlhttp.send();
}


nb: du bør i din gethint.php nok søge direkte i databasen istedet for at smide ud i array først
Avatar billede jetobi Juniormester
15. august 2011 - 00:03 #3
det virker desværre ikke, lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester