Fejl i suggestscript
Hej alle eksperter,Jeg har følgende script som jeg godt kan få til at virke i Chrome, Firefox, Safari men ikke IE7/IE8...
Scriptet skal funke som et suggest script hvor et inputfelt søger igennem min MySQL db når der skrives.
---------
Mit script er delt op i 3.
tmp_tilfoj_deltager.php // Her er HTML formularen
clienthint.js // Her er alt js'en
gethint.php // Her søger jeg igennem db'en samt laver en string som til printes tilbage til formularen.
----------
TMP_TILFOJ_DELTAGER.php :
<script src="./scripts/clienthint.js"></script>
<h2>Søgning</h2><p style='font-size: 8pt;' align=center ><input type="text" size=50 id="txt1" onkeyup="showHint(this.value, <?php echo $_GET[lobID]; ?>)" />
<span id="txtHint" style=""></span>
---------
CLIENTHINT.JS
var xmlhttp
function showHint(str, id)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Your browser does not support XMLHTTP!");
return;
}
var url="../scripts/gethint.php";
url=url+"?q="+str+"&lobID="+id;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
---------
GETHINT.PHP
<?php
header("Cache-Control: no-cache, must-revalidate");
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// Fill up array with names
include("../inc/db.php");
connect();
$q_navne = mysql_query("SELECT * FROM deltagere");
while($r_navne = mysql_fetch_assoc($q_navne)){
$a[] = array( "navn" => utf8_encode($r_navne["fornavn"])." ".utf8_encode($r_navne["efternavn"]),
"id" => $r_navne["id"],
"fodt" => $r_navne["fodt"],
"adresse_adresse" => $r_navne["adresse_adresse"],
"adresse" => utf8_encode($r_navne["adresse_by"])." - ".$r_navne["adresse_postnr"] );
}
//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
$array_q = $q;
$array_q = explode(" ", $array_q);
$array_q0 = $array_q[0]; // den er aktiv
$array_q1 = $array_q[1]; // deaktiv
$array_q2 = $array_q[2]; // deaktiv
for($i=0; $i<count($a) AND $i < 11; $i++)
{
$ID_l = $a[$i]["id"];
$link = "java script:popUp('./popup/tilfoj_distance.php?deltagerID=".$a[$i]["id"]."&lobID=$_GET[lobID]')";
$vistilmelding = "<div><b>Født:</b> ".$a[$i]["fodt"]."<br><b>Adresse:</b> ".$a[$i]["adresse_adresse"].", ".$a[$i]["adresse"]."</div>";
$knap = "<a onmouseover='ReverseContentDisplay('uniquename$ID_l'); return true;' href=java script:ReverseContentDisplay('uniquename$ID_l')
style='color: green; text-decoration: none;' ><img src='./images/icons/magnifier_zoom_in.png' > </a> ";
if ( preg_match("/$array_q0/i", $a[$i]["navn"]) )
{
$hint= ($hint."<div style='height:20px; vertical-align:top;' >
".$knap." <a href=$link >".$a[$i]["navn"]." (".$a[$i]["adresse"].")</a></div>
<div id=uniquename".$ID_l." class=hint > ".$vistilmelding."</div>");
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
$link_ny = "java script:popUp('./popup/tilfoj_deltager.php?lobID=$_GET[lobID]')";
if ($hint == "")
{
$response="<input value='Opret ny bruger' type=button onclick=$link_ny >";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>