Problemer med "var parameterString = this.href.replace"
Hej eksperterPå min side har besøgende mulighed for at stemme (rating) på forskellige ting ved at vælge et antal stjerner.
Og i .htaccess har jeg ændret lidt, så mine URL'er ændres fra:
minside.dk/billede.php?id=123&titel=hej til minside.dk/billede/123/hej
Dette giver problemer, når folk skal stemme - nu vises der kun en load-indikator og der sker ikke andet.
Jeg tror problemet skyldes at en url benyttes til at hente noget asynkront når der stemmes, men at reglerne i .htaccess ødelægger denne url.
Jeg har gravet lidt og TROR problemet ligger i følgende js-kode (nærmere bestemt i variablen parameterString)
var ratingAction = {
'a.rater' : function(element){
element.onclick = function(){
var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
var parameterList = new Array();
for (j = 0; j < parameterTokens.length; j++) {
var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
parameterList[parameterName] = parameterValue;
}
var theratingID = parameterList['q'];
var theVote = parameterList['j'];
var theuserIP = parameterList['t'];
var theunits = parameterList['c'];
//for testing alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
sndReq(theVote,theratingID,theuserIP,theunits); return false;
}
}
};
Behaviour.register(ratingAction);
Nogen der kan gennemskue, hvad der går galt?
Tak.