Tema: ajax + utf8
Pogledajte određenu poruku
Staro 07. 11. 2008.   #1
GaVrA
Bird is the word!
Certified
 
Datum učlanjenja: 27.09.2008
Poruke: 73
Hvala: 12
0 "Hvala" u 0 poruka
GaVrA is on a distinguished road
Default ajax + utf8

Ok imam jednu modifikaciju na forumu, kada se otvora nova tema, prvo(ok možda i nije lol) što se uradi je da se lupi naslov. E kada korisnik skine fokus sa tog polja za naslov pokrene se ova skripta koja pregleda forum u kome se otvara tema da li ima sličnih tema, pa ako ima prikaže jednu tabelu sa tim temama...

Sve super radi ali nikako nije htelo da radi sa č ć ž š đ... Dakle ako se ukuca u naslov te nove teme jedno od tih slova - rezultat pretrage je empty...

Kôd:
var xmlHttp

function show(url)
{
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
     alert ("Your browser does not support AJAX!"); return;
  } 
      
      var url=url;
      xmlHttp.onreadystatechange=stateChanged;
      xmlHttp.open("GET",url,true);
      xmlHttp.overrideMimeType('text/xml; charset=utf-8');
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send(null);
}

function stateChanged() 
{ 
   if (xmlHttp.readyState==4)
   { 
      document.getElementById("ajaxcontent").innerHTML=xmlHttp.responseText;
   }
}

function GetXmlHttpObject()
{

   var xmlHttp=null;
   try
   {
       // Firefox, Opera 8.0+, Safari
       xmlHttp=new XMLHttpRequest();
   }
     catch (e)
     {
       // Internet Explorer
       try
       {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
       }
        catch (e)
        {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
  return xmlHttp;
}

function similar( title, fid )
{
	//----------------------------------
	// Using fancy js?
	//----------------------------------
	
	if ( ! use_enhanced_js )
	{
		window.location = ipb_var_base_url + 'act=xmlout&do=similar&title=' + title + '&fid=' + fid;
		return false;
	}
	else
	{
		/*--------------------------------------------*/
		// Main function to do on request
		// Must be defined first!!
		/*--------------------------------------------*/
		
		do_request_function = function()
		{
			//----------------------------------
			// Ignore unless we're ready to go
			//----------------------------------
			
			if ( ! xmlobj.readystate_ready_and_ok() )
			{
				xmlobj.show_loading();
				return;
			}

			xmlobj.hide_loading();
			
			//----------------------------------
			// INIT
			//----------------------------------
			
			var returned = xmlobj.xmlhandler.responseText;
	
			document.getElementById( 'similar' ).innerHTML = returned;
		};
		
		//----------------------------------
		// LOAD XML
		//----------------------------------
		
		so  = document.getElementById( 'title' ).value;
		
		xmlobj = new ajax_request();
		xmlobj.onreadystatechange( do_request_function );
		
		xmlobj.process( ipb_var_base_url + 'act=xmlout&do=similar&title=' + so + '&fid=' + fid);
		
		return false;
	}
};
Prvobitno je bilo ovo:

Kôd:
xmlHttp.overrideMimeType('text/xml; charset=windows-1255');
Pa je zamenjeno sa:

Kôd:
xmlHttp.overrideMimeType('text/xml; charset=utf-8');
Takođe rečeno mi je da dodam ovo:

Kôd:
$title = mb_convert_encoding( $title, "HTML-ENTITIES", "UTF-8"
u funkciju similar_topics:
PHP kôd:
    //-----------------------------------------
    // (V88)Similar Topics
    //-----------------------------------------

    
function similar_topics()
    {
        
$func $this->ipsclass->load_classROOT_PATH.'sources/lib/func_similartopics.php''func_similartopics' );
        
$func->init();

        
$title trim($this->ipsclass->input['title']);
        
$title mb_convert_encoding$title"HTML-ENTITIES""UTF-8" );

        if(empty(
$title))
        {
            
$content "<tr><td class='row2' colspan='7' align='center'>{$this->ipsclass->lang['st_no_topic_title']}</td></tr>";
            return;
        } 
E sad, posle te dve male izmene počela da radi pretraga sa č ć đ, ali i dalje ne radi sa š i ž...

Molim Vas da pregledate ovaj kod, jer stvarno me nervira... Pa ako imate neko rešenje bio bih vam veoma zahvalan da ga podelite sa mojom malenkošću...

Poslednja izmena od GaVrA : 07. 11. 2008. u 20:13.
GaVrA je offline   Odgovorite uz citat