Jump to content
php.lv forumi

Recommended Posts

Posted

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

Posted

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.

Posted (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 by Uldis
Posted

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

Posted

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

 

}

Posted

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.

Posted

100% kaut kur kodējumi neiet kopā. Pārbaudi visus failus. Paskaties arī kādā kodējumā ajax tev atgriež datus.

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...