2010-08-27 3 views
0

J'ai une bibliothèque de graphes que j'utilise pour tracer certaines données.Récupère les paramètres d'URL dans JS et les intègre dans une fonction JS

Ces données sont transmis en tant que GET paramater dans l'URL dans le format suivant: plottedgraph.html?case_id=4&otherparam=blabla

J'ai ma page HTML où je tente d'attraper que GET param avec la fonction GUP (ci-dessous) et l'ajouter à ma fonction JS comme suit: "http://www.url.com/showgraph.do?case_id=" + gup('case_id') + "&status=weighted"

C'est l'ensemble HTML

<html> 
<head> 
    <!--[if IE]> 
     <script type="text/javascript" src="js/excanvas.js"></script> 
    <![endif]--> 
    <script type="text/javascript" src="js/dygraph-combined.js"></script> 

    <script type="javascript"> 
    function gup(name) 
    { 
     name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
     var regexS = "[\\?&]"+name+"=([^&#]*)"; 
     var regex = new RegExp(regexS); 
     var results = regex.exec(window.location.href); 
     if(results == null) 
     return ""; 
     else 
     return results[1]; 
    } 
    </script> 

</head> 
<body> 
<div id="graphdiv2" style="width:1800; height:900px;"></div> 
<script type="text/javascript"> 
    g2 = new Dygraph(
    document.getElementById("graphdiv2"), 
    "http://www.url.com/showgraph.do?case_id=" + gup('case_id') + "&status=weighted", // path to CSV file 
    { 
     showRoller: true, 
     colors: ["rgb(255,100,100)", 
       "rgb(72,61,139)"] 
    }   // options 
); 
</script> 
</body> 
</html> 

Malheureusement, la fonction JS ne reconnaît pas que case_id = 4 dans ce cas ...

Pourriez-vous s'il vous plaît laissez-moi savoir ce que je fais mal?

+0

duplication possible de [chaîne de requête JavaScript] (http://stackoverflow.com/questions/647259/javascript-query-string) –

Répondre

2

Il est un peu difficile de vous déboguer la fonction GUP(), pourriez-vous essayer:

var params={}; 
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function() { 
    function decode(s) { 
     return decodeURIComponent(s.split("+").join(" ")); 
    } 
    params[decode(arguments[1])] = decode(arguments[2]); 
}); 

Vous pouvez maintenant trouver vos paramètres dans l'objet params, si params [ « case_id »] tiendrez la valeur cherchons.

+0

Merci! celui-ci a parfaitement fonctionné !! –

Questions connexes