![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
index.html
HTML |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html dir="ltr" lang="ru" xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>AJAX Test</title> <script src="clienthint.js"></script> </head> <body> <form> First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)" /> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html> |
Код |
var xmlhttp function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support XMLHTTP!"); return; } var url="gethint.php"; url=url+"?q="+str; 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; } |
PHP |
<?php |
Цитата (kirik @ 20.09.2009 - 02:04) |
Из-за того что в utf8 и не работает. Для работы со строками в юникоде предусмотрены специальные мультибайтовые функции, тоесть обычные str* не прокатят (а у тебя там strtolower проверяет и strlen). |
Цитата |
Как я понял, нужно все строковые функции типа strlen заменить на mb_strlen??? Так и сделал, но результата нет |
PHP |
strtolower($q, 'utf-8') |
PHP |
mb_internal_encoding('utf-8'); |
Цитата (Michael @ 22.09.2009 - 04:48) |
Вместо: url=url+"?q="+str; надо: url=url+"?q="+encodeURIComponent(str); |