Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt zakladek
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ksenonlogin
Obecny skrypt działa dla dwóch możliwych zakładek, proszę o pomoc jak obsłużyć/przerobić skrypt by działał dla większej ilości zakładek/linków, np dla trzech, gdy zobaczę jak wprowadzać zmiany to bedę już wiedział jak zrobić to dla czterech czy pięciu.


Oto HTML:
  1. <a href="java script:void(pokaz_ukryj('dane_podstawowe', 'pozycjonowanie'))">Dane podstawowe</a>
  2. <a href="java script:void(pokaz_ukryj('pozycjonowanie', 'dane_podstawowe'))">Pozycjonowanie</a>
  3.  
  4. <div id="dane_podstawowe">
  5. Dane podstawowe...
  6. </div>
  7. <div id="pozycjonowanie" style="display:none">
  8. Pozycjonowanie...
  9. </div>




A tutaj Script:
  1. function xmlhttpPost(strURL, formname, responsediv, responsemsg) {
  2. var xmlHttpReq = false;
  3. var self = this;
  4. if(window.XMLHttpRequest) {
  5. self.xmlHttpReq = new XMLHttpRequest();
  6. } else if(window.ActiveXObject) {
  7. self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  8. }
  9. self.xmlHttpReq.open('POST', strURL, true);
  10. self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  11. self.xmlHttpReq.onreadystatechange = function() {
  12. if(self.xmlHttpReq.readyState == 4) {
  13. updatepage(self.xmlHttpReq.responseText, responsediv);
  14. } else {
  15. updatepage(responsemsg, responsediv);
  16. }
  17. }
  18. self.xmlHttpReq.send(getquerystring(formname));
  19. }
  20.  
  21. function getquerystring(formname) {
  22. var form = document.forms[formname];
  23. var qstr = "";
  24. function GetElemValue(name, value) {
  25. qstr += (qstr.length > 0 ? "&" : "") + escape(name).replace(/\+/g, "%2B") + "=" + escape( value ? value : "").replace(/\+/g, "%2B");
  26. }
  27.  
  28. var elemArray = form.elements;
  29. for(var i = 0; i < elemArray.length; i++) {
  30. var element = elemArray[i];
  31. var elemType = element.type.toUpperCase();
  32. var elemName = element.name;
  33. if(elemName) {
  34. if(elemType == "TEXT" || elemType == "TEXTAREA" || elemType == "PASSWORD" || elemType == "BUTTON" || elemType == "RESET" || elemType == "SUBMIT" || elemType == "FILE" || elemType == "IMAGE" || elemType == "HIDDEN")
  35. GetElemValue(elemName, element.value);
  36. else if(elemType == "CHECKBOX" && element.checked)
  37. GetElemValue(elemName, element.value ? element.value : "On");
  38. else if(elemType == "RADIO" && element.checked)
  39. GetElemValue(elemName, element.value);
  40. else if(elemType.indexOf("SELECT") != -1)
  41. for(var j = 0; j < element.options.length; j++) {
  42. var option = element.options[j];
  43. if(option.selected)
  44. GetElemValue(elemName, option.value ? option.value : option.text);
  45. }
  46. }
  47. }
  48. return qstr;
  49. }
  50.  
  51. function updatepage(str, responsediv) {
  52. document.getElementById(responsediv).innerHTML = str;
  53.  
  54. }
Orzeszekk
W skrypcie który nam dałeś, w ogóle nie ma funkcji pokaz_ukryj wiec ciezko cokolwiek powiedziec na temat jego działania.

Zreszta skoro jako pierwszy argument podaje sie tej funkcji zakladke do wyswietlenia a jako drugi zakladke do schowania to moze byc tak ze ten skrypt dziala tylko dla dwóch zakładek.

Poszukaj jakiegos lepszego skryptu

Może o ten będzie dobry? skrypt. Te masz od razu z ajaxem i zapewne dobrze udokumentowane.
ksenonlogin
Wielkie dzięki

Pozdrawiam yahoo.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.