Jump to content
php.lv forumi

Nevaru dabūt LV simbolus


Uldis

Recommended Posts

errorcity.jpg

 

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

Link to comment
Share on other sites

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 by Uldis
Link to comment
Share on other sites

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();

 

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...