Tags:
javascript
Hejsa,
jeg er lige startet på jQuery og er stødt på det problem at det jeg plejer at kunne gøre ved mine forespørgsler ikke duer med $("div").load("page.php").
Jeg plejer nemlig at konvertere tegnene der bliver sendt afsted til deres tegn koder, og således skifte frem og tilbage:
//Used only with the str.replace method
function ajax2html_regex(mat, str) {
return String.fromCharCode(str);
}
//Needed by AJAX (get -64 and decode that)
function ajax2html(str) {
return str.replace(/-([0-9]{1,5})/g, ajax2html_regex);
}
//Needed by AJAX (encode chars into their charcode like this: -64 )",
function html2ajax(str) {
var param = "";
for( var c=0; c<str.length; c++ ) {
param += "-"+str.charCodeAt(c);
}
return param;
}
Dette er for at undgå bøvl med æøå osv
Men hvad gør jeg lige når jeg ikke længere har kontrol over hvad der bliver modtaget?
Tark!
1 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
Så fandt jeg omsider selv ud af det.
Til hvem det måtte interessere kan det gøres således:
function ajax(page, identifier) {
$.ajax({
url: page,
success: function(data) {
$(identifier).html(ajax2html(data));
}
});
}
Og som bonus smider jeg lige php funktioner med før jeg lukker tråden.
//Needed by AJAX (get -64 and decode that)
function ajax2php($str) {
$str = preg_replace("/\-([0-9]{1,5})/", "<$1>", $str);
while(preg_match("/\<([0-9]{1,5})\>/", $str, $r)) {
$mat = $r[0];
$cha = $r[1];
$cha = htmlspecialchars(chr($cha), ENT_QUOTES, "iso-8859-1");
$str = str_replace($mat, $cha, $str);
}
$str = html_entity_decode($str, ENT_QUOTES, "iso-8859-1");
return $str;
}
//Needed by AJAX (encode chars into their charcode like this: -64 )",
function php2ajax($str) {
$param = "";
for( $c=0; $c<strlen($str); $c++ ) {
$param .= "-".ord(substr($str, $c, 1));
}
return $param;
}