Avatar billede hipermedia Nybegynder
16. november 2005 - 00:52 Der er 8 kommentarer og
2 løsninger

POST og GET med JavaScript

Hej

Kan jeg få JavaScript til at læse hvad der er i POST/GET?


/hiper
Avatar billede softspot Forsker
16. november 2005 - 00:55 #1
Du kan læse GET via location.search. POST kan du mig bekendt ikke læse fra javascript...
Avatar billede roenving Novice
16. november 2005 - 00:56 #2
Med get sendes formens indhold jo som en del af urlen, så i det tilfælde kan du 'bare' aflæse location.search !-)

-- post kan ikke aflæses fra javascript, men hvad skulle formålet også være, værdierne skal vel bruges i noget server-side, og hvis du bagefter har lyst til at bruge dem client-side, kan du jo bare sende dem tilbage ...
Avatar billede hipermedia Nybegynder
16. november 2005 - 11:52 #3
okay,

Nu kan jeg alert:
/?sprog=1

Hvordan henter jeg så værdien?
Avatar billede roenving Novice
16. november 2005 - 12:16 #4
F.eks. (lavet til lige præcis een parameter !-)

var q = location.search.substring(1);
var val = q.split("=")[1];
Avatar billede thomas_yde Nybegynder
16. november 2005 - 12:55 #5
Et eksempel jeg lavede engang. Ved ikke hvor kønt det er men:
<script type="text/javascript">
var a_params;

function getUrlParams(){
a_params = new Array();
s_Url = window.location.href;
indexQ = s_Url.indexOf('?');
if(indexQ>0){
  s_Params = s_Url.substring(indexQ+1,s_Url.length);
  tmp_params = s_Params.split('&');
  for(i=0;i<tmp_params.length;i++){
  tmpParam = tmp_params[i].split('=');
  a_params.push(new Array(tmpParam[0],URLDecode(tmpParam[1])));
  }
}
}

function getParamValue(paramName){
if(a_params==null) getUrlParams();
for(i=0;i<a_params.length;i++){
if(a_params[i][0] == paramName){
  return a_params[i][1];
}
}
return "-1";
}

window.onload=function(){
getUrlParams();
}
</script>
Avatar billede roenving Novice
16. november 2005 - 13:11 #6
Tjah, den kan da samlet set gøres en del kortere:

function getUrlParams(){
  var retVal = new Array();
  if(location.search){
    var q = location.search.substring(1).split("&");
    for(i=0:q.length>i;i++){
      q[i] = q[i].split("=");
      retVal[q[i][0]] = unescape(q[i][1]);
    }
  }
  return retVal;
}

-- så kan den f.eks. bruges sådan:

var urlParms = getUrlParams();
var lang = urlParms && urlParms["sprog"] ? urlParms["sprog"] : "";
Avatar billede hipermedia Nybegynder
16. november 2005 - 21:43 #7
nice, tak. I kan vel dele point?
Avatar billede thomas_yde Nybegynder
16. november 2005 - 23:32 #8
det kan vi da
Avatar billede roenving Novice
17. november 2005 - 10:24 #9
Velbekomme '-)
Avatar billede roenving Novice
28. november 2005 - 17:02 #10
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester