Click here to Skip to main content
15,885,767 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Search is not working on IE, but works great on Chrome, Safari, Opera, Firefox.

it works great when it searches into database english characters on IE 10 but nothing shows as text when it searches into database to find greek characters. This happens only with IE.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/textinputs_jquery.js"></script>
<script type="text/javascript" src="js/textinputs_jquery_src.js"></script>
<script>
$(document).ready(function(){

$("#comp_text").live('input paste',function(){
var str=document.getElementById("comp_text");
if (str.value.length <3){
return false;
}
var twidth=str.offsetWidth;
$('#txtHint').width(twidth);
$('#txtHint').load('gethint.php?q='+str.value);
});
$(".add").submit( function(){
if($('#company').length){
return true;
}else{
alert("");
return false;
}
});
});

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. önreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}


function set_val(str, company){
document.getElementById('comp_text').value= str;
document.getElementById('txtHint').innerHTML="";
document.getElementById("customer_place").innerHTML='<input type="hidden" id="company" value="'+company+'">';
}
function cust_control(){

if (document.getElementByName('company')){
alert ("");
return false;
}else
return true;
}

</script>
<form method=\"post\" name=\"addn\" class=\"add\" action=\"do_insert.php\">
<input type="text" id="comp_text" önkeyup="showHint(this.value)" name="company" size="20" style="text-align: center; font-size: 13px;"/>
<div id="txtHint"></div>
<div id="customer_place"></div>
</form>





and gethint.php ...


PHP
$q=$_GET["q"];
$response='';

$query="SELECT uid, company FROM users where company like '".$q."%' and userid='$userid' order by company";
mysql_query("set character set 'utf8'");
$result=mysql_query($query);

if (mysql_num_rows($result) > 0) {
$response.='<table>';
    while ($row=mysql_fetch_array($result)){
$response.='<tr><td önclick="set_val(\''.$row['company'].'\', \''.$row['uid'].'')">'.$row['company'].'</td></tr>';
    }
$response.='</table>';  
echo $response;
}else{
}
Posted
Updated 10-May-13 2:30am
v4

My guess would be that ms still defaults to its legacy Windows-1252 character encoding. Try put the following as first line in the HEAD section of the page.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Good luck!
 
Share this answer
 
Comments
bmaglar 10-May-13 8:34am    
The problem remains the same. When i search on IE for a fantastic company ASD for example it is ok. When i search for a greek characters company of the database it looks like the mysql_num_rows($result)==0
E.F. Nijboer 10-May-13 8:48am    
As a sidenote:
This is an accident waiting to happen (sql injection):
$query="SELECT uid, company FROM users where company like '".$q."%' and userid='$userid' order by company";

But for the sake of just this question, could you describe what you enter and what you see happening? Is the query actually fired in ie10 for example? Did you check the NET tab in the developer tools (key: F12)? Or checked it with fiddler?
bmaglar 10-May-13 16:25pm    
On the Net tab i see the query running real-time correctly with greek characters but $response is null if the characters are greek on IE so it goes to the final else {... }
E.F. Nijboer 10-May-13 16:37pm    
Is this link any help?
http://blogs.msdn.com/b/ie/archive/2012/07/19/xmlhttprequest-responsexml-in-ie10-release-preview.aspx

By the way, I noticed the character 'ö' instead of an 'o' in the code added to the question and I don't know if that matters.
bmaglar 10-May-13 17:13pm    
Nothing solved ..
replace
xmlhttp.open("GET","gethint.php?q="+str,true);
with
xmlhttp.open("GET","gethint.php?q="+encodeURIComponent(str,true));
solves the problem ...
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900