Jump to content
php.lv forumi

Ajax, encoding un escape


Jackal

Recommended Posts

Problēma tāda, ka dēļ escape() (skatīt funkciju serialize()) funkcijas visi burti "ēūīāšģķļžčņ" tiek pārvērsti par %xx, tikai xx vietā kaut kādi cipari un burti. Ja noņem escape(), sākas citas problēmas, ja tekstā ir dubultās pēdiņas, tad viss teksts, kas atrodas aiz pēdiņām tiek norauts.

 

Atradu tādu funkciju kā - encodeURIComponent(), kuru varētu izmantot escape vietā, bet nekādas izmaiņas nebija.

 

Ir kāds jēdzīgs risinājums tam?

 

//izveidojam xmlhttp objektu
function object(){
  var xmlHttp;
  try{
     xmlHttp = new XMLHttpRequest();
  } catch(e) {
     try{
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch(e) {
        try{
           xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
           alert("Your browser does not support AJAX!");
           return false;
        }
     }
  }

  return xmlHttp;
}

 

//funkcija tiek izmantota ajax pieprasijumiem
function request(method, url, field, string){
  var xmlHttp = object();
  xmlHttp.open(method, url, false);

  if(string){
     xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  } else {
     string = null;
  }

  xmlHttp.send(string); 

  if(field){
     if(xmlHttp.readyState == 4){
        var element = document.getElementById(field);

        if(element){
           element.innerHTML = xmlHttp.responseText;
        } else {
           alert("Id " + field + " does not exist!");
        }
     }
  }

  xmlHttp = null; 
}

 

//pārvēršam masīvu par stringu - 'title=aaa&val=bbb'

function serialize(array){
  var string = "";

  for(var i in array){
     if(string != ""){
        string += "&";
     }

     string = string + i + "=" + escape(array[i]);
  }

  return string;
}

 

//ajax pieprasijums

var element = document.getElementById("category");

        var values = new Array();
values["title"] = element.title.value;
        values["lang"] = element.lang.value;

        request("post", "index.php?aaa=aaa", false, serialize(values));

Link to comment
Share on other sites

×
×
  • Create New...