Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από renoua » 22 Ιουν 2010 19:44

Έχω το εξής κομμάτι javascript, το οποίο μου βάζει στο div με id = right το c011.xsl αρχείο.
Πώς μπορώ να περάσω την μεταβλητή id στο xsl αρχείο?

Κώδικας: Επιλογή όλων

function displayResult2(id) 
{
xml=loadXMLDoc("anna.xml");
xsl=loadXMLDoc("c011.xsl");

// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("right").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  var xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("right").appendChild(resultDocument);
  }
}


GeorgeMak
Δημοσιεύσεις: 23
Εγγραφή: 10 Ιουν 2010 20:26

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από GeorgeMak » 23 Ιουν 2010 04:00

Θέλεις να περάσεις εξωτερική παράμετρο μέσω GET request (το c011.xsl?view=summary να φορτώνει ένα stylesheet και το c011.xsl?view=details να φορτώνει ένα άλλο;) ή δεν έχω καταλάβει καλά;

Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από renoua » 23 Ιουν 2010 11:52

χμ... λόγω απειρίας μου στο προγραμματισμό δεν μπορώ να πω ότι κατάλαβα την ερώτηση σου..

To script μετατρέπει το xml αρχείο μου σε xsl.. και μου το εμφανίζει δεξιά σε ένα div(αυτό λειτουργεί μια χαρά με τον παραπάνω κώδικα που παρέθεσα)

Tώρα εγώ θέλω να περάσω το id σαν εξωτερική παράμετρο από την javascript στο μέσα στο c011.xsl και δεν ξέρω πως

GeorgeMak
Δημοσιεύσεις: 23
Εγγραφή: 10 Ιουν 2010 20:26

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από GeorgeMak » 23 Ιουν 2010 13:05

Βλέπω ακριβώς τι κάνει ο παραπάνω κώδικας και μετασχηματίζει με το .xsl το .xml και από την εμπειρία μου-δεν έχω δει το .xsl σου-το κάνει html και το βάζει σαν content στο div#right.
ΟΚ ως εδώ, εφόσον θες να παραμετροποιήσεις το xsl μπορείς να κάνεις το εξής:
1. Φτιάχνεις μια σελίδα στο server που θα έχει response content type text/xml και φτιάχνεις από κώδικα το xsl όπως ακριβώς το θες με βάση τις παραμέτρους που περνάς στο query. Μέσα στο xsl χρησιμοποιείς xsl:param και xsl:with-param tags για να βάλεις τις τιμές που παίρνεις από το querystring.
2. Αντί να χρησιμοποιήσεις το filename φορτώνεις το αρχείο μέσω request στην αντίστοιχη σελίδα σου στο server και περνάς το id σαν παράμετρο μέσω javascript:
πχ. αν η σελίδα σου έχει όνομα xsl -> http://example.com/xsl?id=5000.

Σόρρυ αν δεν κατάλαβα, στείλε και τα αρχεία σου αν θες κάτι διαφορετικό.

Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από renoua » 23 Ιουν 2010 13:58

Ναι σωστά κατάλαβες.
Λοιπόν είμαι πολύ πολύ κοντά...

Στον κώδικα έβαλα το εξής:

Κώδικας: Επιλογή όλων

xsltProcessor.setParameter(null, "uid", "a");
με την παραπάνω εντολή από το anna.php που βρίσκεται τo javascript μπορώ να βάλω στο c011.xsl με αυτό : <xsl:param name="uid"/> την τιμή που έχει το 3ο πεδίο του xsltProcessor.setParameter(null, "uid", "a");
Έκανα επαλήθευση και πέρασε η τιμή "a" που έβαλα...

Εγώ θέλω να περάσω στο <xsl:param name="uid"/> την τιμή του id.. από το displayResults2(id)

Την βάζω εδώ
xsltProcessor.setParameter(null, "uid", "id");
αλλά δεν περνιέται ως μεταβλητή αλλά ως στατικό κείμενο! :-?
Γνωρίζεις μήπως πώς περνιέται ώς μεταβλητή?



Συνολικά έχω το εξής..



Κώδικας: Επιλογή όλων

function displayResult2&#40;id&#41; 
&#123;
xml=loadXMLDoc&#40;"anna.xml"&#41;;
xsl=loadXMLDoc&#40;"c011.xsl"&#41;;

// code for IE
if &#40;window.ActiveXObject&#41;
  &#123;
  ex=xml.transformNode&#40;xsl&#41;;
  document.getElementById&#40;"right"&#41;.innerHTML=ex;
  &#125;
// code for Mozilla, Firefox, Opera, etc.
else if &#40;document.implementation && document.implementation.createDocument&#41;
  &#123;
  xsltProcessor=new XSLTProcessor&#40;&#41;;
  xsltProcessor.importStylesheet&#40;xsl&#41;;
  xsltProcessor.setParameter&#40;null, "uid", "id"&#41;;
  resultDocument = xsltProcessor.transformToFragment&#40;xml,document&#41;;
  cleardiv&#40;"right"&#41;;
  document.getElementById&#40;"right"&#41;.appendChild&#40;resultDocument&#41;;
  &#125;
&#125;

Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Πώς περνάω μια μεταβλητή σε ένα xsl αρχείο?

Δημοσίευση από renoua » 23 Ιουν 2010 14:28

Το βρήκα απλά δεν θέλει " " στο id

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης