xsl-list
[Top] [All Lists]

Re: [xsl] Get Variables in XSL from URL

2006-05-01 05:12:16
Try this:

function getURLvar(name) {
   var rs = "";
   var qparts = parent.document.location.href.split("?");
   if (qparts.length > 1) {
       var vars = qparts[1].split("&");
       for (var i=0; (i < vars.length) && (rs.length == 0); i++) {
           var parts = vars[i].split("=");
           if (parts[0].equals(name)) rs = parts[1];
       }
   }
return rs;
}

Still not sure why/how XSL comes into it - this is just JavaScript.
Better go now - before the 'topic police' get me ;-)


miouge(_at_)hotmail(_dot_)com wrote:

Bonjour Andrew Franz,

I would like use onlye a client side script :)

à bientôt, Cordialement Guyot Maxime. ======= le 29/04/2006, 03:01:06 vous écriviez: =======

This is not strictly on-topic - however, my experience is that parameters are best handled outside of XSL (and server-side if possible)

The following function removes certain request parameters (in this example, those suffixed with .x or .y) & reassembles & reloads the URL without them.
Maybe you can adapt it for your needs.

function delparam() {
      var oldurl = parent.document.location.href;
      var qparts = oldurl.split("?");
      var newurl = qparts[0];
      if (qparts.length > 1) {
          // remove any "rqop" parameter, or operations will be repeated
          var vars = qparts[1].split("&");
          var sep = "?";
          for (var i=0; i < vars.length; i++) {
              var parts = vars[i].split("=");
if ((parts[0].substr(parts[0].length-2) == ".x") || (parts[0].substr(parts[0].length-2) == ".y")) {
                    // do nothing
              } else {
                  newurl += sep+ parts[0]+ "="+ parts[1];
                  sep = "&";
              }
          }
      }
      parent.document.location.href = newurl;
}

Server-side, I use the following approach:
This snippet is JSP but I imagine that you can adapt it as well.
It excises the parameters named in "list" and returns the others in a <request> tag for further processing by XSL.

<c:set var="list" value="${fn:split('spr,sprname,listinterval,listsrc', ',')}" />
  <c:set var="listplus" value="${fn:join(list,',')}," />
  <request>
      <c:forEach var="par" items="${paramValues}">
      <c:forEach var="value" items="${par.value}">
          <c:set var="keyplus" value="${par.key}," />
          <c:if test="${not fn:contains(listplus, keyplus)}">
              <jsp:element name="${par.key}">${value}</jsp:element>
          </c:if>
      </c:forEach>
      </c:forEach>
  </request>




miouge(_at_)hotmail(_dot_)com wrote:

Hello,
I would like to get some variables from the URL 
(file.xml?var1=value1&var2=value2) in the test.xml's xsl file (all of this in 
the client-side) and so have try this code:
<msxsl:script language="javascript" implements-prefix="prefix">
function getURLvar(name){
var params = location.search.substring(1).split("&");
var variables = new Array();
  for (i in params) {
    var segments_var = params[i].split("=");
    variables[segments_var[0]] = unescape(segments_var[1]);
  }
function setFile(file) {
  iSend = send;
}
return variables[name];
}
</msxsl:script>

and use this one to print on screen the value of the GET variables....

<xsl:value-of select="prefix:getURLvar(test)" />

But it seems not to be a good Method... and i ask if their is a better solution 
to achieve my goal.

Thanks, and sorry for my bad english.

Maxime G.


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


= = = = = = = = = ========= = = = = = = = = = =
                        
miouge
miouge(_at_)hotmail(_dot_)com
30/04/2006





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>
  • Re: [xsl] Get Variables in XSL from URL, Andrew Franz <=