Uldis Posted July 22, 2010 Report Share Posted July 22, 2010 Izmantoju ajax dinamisko drop down listi, bet atkal esmu strupceļā, jo no datubāzes neielasa LV simbolus. DB tabula ir UTF8, php fails, kura skripts zemāk redzams, arī ir UTF8. Vai man pirms echo $inf["ID"]."###".$inf["countryName"]."|"; nepieciešama vēl kāda konvertācija? Pieļauju, ka vaina ir tieši šajā skripta daļā, jo JS failos nekur dati netiek ielasīti. <? $conn = mysql_connect("host","username","password"); mysql_select_db("dbName",$conn); if(isset($_GET['getCountriesByLetters']) && isset($_GET['letters'])){ $letters = $_GET['letters']; $letters = preg_replace("/[^a-z0-9 ]/si","",$letters); $res = mysql_query("select ID,countryName from ajax_countries where countryName like '".$letters."%'") or die(mysql_error()); #echo "1###select ID,countryName from ajax_countries where countryName like '".$letters."%'|"; while($inf = mysql_fetch_array($res)){ echo $inf["ID"]."###".$inf["countryName"]."|"; } } ?> Izmantotais skripts - atrodas šeit - http://www.dhtmlgoodies.com/scripts/ajax-dynamic-list/ajax-dynamic-list.zip Quote Link to comment Share on other sites More sharing options...
101111 Posted July 22, 2010 Report Share Posted July 22, 2010 Pēc piekonnektēšanās DB: mysql_query("set names utf8"); Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 diemžēl nepalīdz Quote Link to comment Share on other sites More sharing options...
mixis Posted July 22, 2010 Report Share Posted July 22, 2010 Visi faili ir UTF-8 kodējumā? Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 IT kā visi bija caur Notepad++ uzlikti kā UTF-8, mēģināju caur ISP Manager uzlikt atkārtoti UTF-8 servera pusē, tā kā 100% jābūt visiem failiem. Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 (edited) Mazliet vienkāršoju skriptu, bet tāpat iegūstu "Ventspils Varak??ni Vangaži Valmiera Valka Valdem?rpils Tukums" -" ž " laikam ir vienīgais simbols, kas normāli izvadās. DB visas pilsētas izskatās normāli, bet vai tas varētu būt saistīs ar CSV importu ? Nekur taču papildus nav kodējumi, kuri norāda kādos dati tabulā tiek glabāti? <? $conn = mysql_connect("mysql","user","pass"); mysql_select_db("forest",$conn); $res = mysql_query("select ID,pilseta from pilsetas ") or die(mysql_error()); while($inf = mysql_fetch_array($res)){ echo $inf["pilseta"]; } ?> Edited December 24, 2010 by Uldis Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 Ok, pēdējā skriptā ieliekot mysql_query("set names utf8"); simboli nāk arā korekti. Nesaprotu kāpēc tad pirmajā gadījumā "set names" nepalīdz Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 Vai nepareizajam kodējumam par pamatu nevar būt js, kurš izsauc augstāk minēto php failu.. ?? var ajaxBox_offsetX = 0; var ajaxBox_offsetY = 0; var ajax_list_externalFile = 'http://www.planotajs.laulibas.lv/pilsetas.php'; // Path to external file var minimumLettersBeforeLookup = 2; // Number of letters entered before a lookup is performed. var ajax_list_objects = new Array(); var ajax_list_cachedLists = new Array(); var ajax_list_activeInput = false; var ajax_list_activeItem; var ajax_list_optionDivFirstItem = false; var ajax_list_currentLetters = new Array(); var ajax_optionDiv = false; var ajax_optionDiv_iframe = false; var ajax_list_MSIE = false; if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0)ajax_list_MSIE=true; var currentListIndex = 0; function ajax_getTopPos(inputObj) { var returnValue = inputObj.offsetTop; while((inputObj = inputObj.offsetParent) != null){ returnValue += inputObj.offsetTop; } return returnValue; } function ajax_list_cancelEvent() { return false; } function ajax_getLeftPos(inputObj) { var returnValue = inputObj.offsetLeft; while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft; return returnValue; } function ajax_option_setValue(e,inputObj) { if(!inputObj)inputObj=this; var tmpValue = inputObj.innerHTML; if(ajax_list_MSIE)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent; if(!tmpValue)tmpValue = inputObj.innerHTML; ajax_list_activeInput.value = tmpValue; if(document.getElementById(ajax_list_activeInput.name + '_hidden'))document.getElementById(ajax_list_activeInput.name + '_hidden').value = inputObj.id; //var f1=setTimeout('ajax_list_activeInput.focus()',1); //var f2=setTimeout('ajax_list_activeInput.value = ajax_list_activeInput.value',1); ajax_options_hide(); } function ajax_options_hide() { if(ajax_optionDiv)ajax_optionDiv.style.display='none'; if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='none'; } function ajax_options_rollOverActiveItem(item,fromKeyBoard) { if(ajax_list_activeItem)ajax_list_activeItem.className='optionDiv'; item.className='optionDivSelected'; ajax_list_activeItem = item; if(fromKeyBoard){ if(ajax_list_activeItem.offsetTop>ajax_optionDiv.offsetHeight){ ajax_optionDiv.scrollTop = ajax_list_activeItem.offsetTop - ajax_optionDiv.offsetHeight + ajax_list_activeItem.offsetHeight + 2 ; } if(ajax_list_activeItem.offsetTop<ajax_optionDiv.scrollTop) { ajax_optionDiv.scrollTop = 0; } } } function ajax_option_list_buildList(letters,paramToExternalFile) { ajax_optionDiv.innerHTML = ''; ajax_list_activeItem = false; if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length<=1){ ajax_options_hide(); return; } ajax_list_optionDivFirstItem = false; var optionsAdded = false; for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){ if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].length==0)continue; optionsAdded = true; var div = document.createElement('DIV'); var items = ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].split(/###/gi); if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1 && ajax_list_activeInput.value == items[0]){ ajax_options_hide(); return; } div.innerHTML = items[items.length-1]; div.id = items[0]; div.className='optionDiv'; div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false) } div.onclick = ajax_option_setValue; if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem = div; ajax_optionDiv.appendChild(div); } if(optionsAdded){ ajax_optionDiv.style.display='block'; if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display=''; ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true); } } function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex) { if(whichIndex!=currentListIndex)return; var letters = inputObj.value; var content = ajax_list_objects[ajaxIndex].response; var elements = content.split('|'); ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()] = elements; ajax_option_list_buildList(letters,paramToExternalFile); } function ajax_option_resize(inputObj) { ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px'; ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px'; if(ajax_optionDiv_iframe){ ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left; ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top; } } function ajax_showOptions(inputObj,paramToExternalFile,e) { if(e.keyCode==13 || e.keyCode==9)return; if(ajax_list_currentLetters[inputObj.name]==inputObj.value)return; if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile] = new Array(); ajax_list_currentLetters[inputObj.name] = inputObj.value; if(!ajax_optionDiv){ ajax_optionDiv = document.createElement('DIV'); ajax_optionDiv.id = 'ajax_listOfOptions'; document.body.appendChild(ajax_optionDiv); if(ajax_list_MSIE){ ajax_optionDiv_iframe = document.createElement('IFRAME'); ajax_optionDiv_iframe.border='0'; ajax_optionDiv_iframe.style.width = ajax_optionDiv.clientWidth + 'px'; ajax_optionDiv_iframe.style.height = ajax_optionDiv.clientHeight + 'px'; ajax_optionDiv_iframe.id = 'ajax_listOfOptions_iframe'; document.body.appendChild(ajax_optionDiv_iframe); } var allInputs = document.getElementsByTagName('INPUT'); for(var no=0;no<allInputs.length;no++){ if(!allInputs[no].onkeyup)allInputs[no].onfocus = ajax_options_hide; } var allSelects = document.getElementsByTagName('SELECT'); for(var no=0;no<allSelects.length;no++){ allSelects[no].onfocus = ajax_options_hide; } var oldonkeydown=document.body.onkeydown; if(typeof oldonkeydown!='function'){ document.body.onkeydown=ajax_option_keyNavigation; }else{ document.body.onkeydown=function(){ oldonkeydown(); ajax_option_keyNavigation() ;} } var oldonresize=document.body.onresize; if(typeof oldonresize!='function'){ document.body.onresize=function() {ajax_option_resize(inputObj); }; }else{ document.body.onresize=function(){oldonresize(); ajax_option_resize(inputObj) ;} } } if(inputObj.value.length<minimumLettersBeforeLookup){ ajax_options_hide(); return; } ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px'; ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px'; if(ajax_optionDiv_iframe){ ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left; ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top; } ajax_list_activeInput = inputObj; ajax_optionDiv.onselectstart = ajax_list_cancelEvent; currentListIndex++; if(ajax_list_cachedLists[paramToExternalFile][inputObj.value.toLowerCase()]){ ajax_option_list_buildList(inputObj.value,paramToExternalFile,currentListIndex); }else{ var tmpIndex=currentListIndex/1; ajax_optionDiv.innerHTML = ''; var ajaxIndex = ajax_list_objects.length; ajax_list_objects[ajaxIndex] = new sack(); var url = ajax_list_externalFile + '?' + paramToExternalFile + '=1&letters=' + inputObj.value.replace(" ","+"); ajax_list_objects[ajaxIndex].requestFile = url; // Specifying which file to get ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,tmpIndex); }; // Specify function that will be executed after file has been found ajax_list_objects[ajaxIndex].runAJAX(); // Execute AJAX function } } function ajax_option_keyNavigation(e) { if(document.all)e = event; if(!ajax_optionDiv)return; if(ajax_optionDiv.style.display=='none')return; if(e.keyCode==38){ // Up arrow if(!ajax_list_activeItem)return; if(ajax_list_activeItem && !ajax_list_activeItem.previousSibling)return; ajax_options_rollOverActiveItem(ajax_list_activeItem.previousSibling,true); } if(e.keyCode==40){ // Down arrow if(!ajax_list_activeItem){ ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true); }else{ if(!ajax_list_activeItem.nextSibling)return; ajax_options_rollOverActiveItem(ajax_list_activeItem.nextSibling,true); } } if(e.keyCode==13 || e.keyCode==9){ // Enter key or tab key if(ajax_list_activeItem && ajax_list_activeItem.className=='optionDivSelected')ajax_option_setValue(false,ajax_list_activeItem); if(e.keyCode==13)return false; else return true; } if(e.keyCode==27){ // Escape key ajax_options_hide(); } } document.documentElement.onclick = autoHideList; function autoHideList(e) { if(document.all)e = event; if (e.target) source = e.target; else if (e.srcElement) source = e.srcElement; if (source.nodeType == 3) // defeat Safari bug source = source.parentNode; if(source.tagName.toLowerCase()!='input' && source.tagName.toLowerCase()!='textarea')ajax_options_hide(); } Quote Link to comment Share on other sites More sharing options...
101111 Posted July 22, 2010 Report Share Posted July 22, 2010 Nē, ar JS tur nav sakars. Vai tad problēma neatrisinājās? Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 Problēma nav tikai, ja pa tiešo atlasu datus. Ja vēlos, lai dati parādās drop down listē(un izmantoju js), tad ķeburi tāpat rādās. Quote Link to comment Share on other sites More sharing options...
mixis Posted July 22, 2010 Report Share Posted July 22, 2010 100% kaut kur kodējumi neiet kopā. Pārbaudi visus failus. Paskaties arī kādā kodējumā ajax tev atgriež datus. Quote Link to comment Share on other sites More sharing options...
Леший Posted July 22, 2010 Report Share Posted July 22, 2010 [offtop] Pašam ērti rakstīt tādu palagu ar JS? [/offtop] Paprovē izmantot JSON, vismaz ja dati tiek atlasīti korekti no DB, tad problēmai būtu jāpazūd. Quote Link to comment Share on other sites More sharing options...
Uldis Posted July 22, 2010 Author Report Share Posted July 22, 2010 Es jau to palagu nerakstīju. Izmantoju gatavu skriptu, pielāgoju tik savām vajadzībām Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.