login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[JS] JS functie voert niks uit. (Opgelost)

Offline Godlord - 13/03/2007 16:36 (laatste wijziging 13/03/2007 16:37)
Avatar van GodlordPHP gevorderde Hoi iedereen.

Het Script:
  1. function urlcolour(colour) {
  2. url = document.location;
  3. urla = url.split('&colour=');
  4. urlb = urla[1].split('&', 1);
  5. urlc = urlb[1];
  6. if (urlc != "") {
  7. urlc = '&' + urlb;
  8. }
  9. if (urla[1] == "") {
  10. document.location = url + '&colour=' + colour;
  11. } else {
  12. document.location = urla[0] + '&colour=' + colour + urlc;
  13. }
  14. }


De functie past de URL van de pagina aan. Als er geen &colour in staat dan voegt ie er gewoon &colour=kleur aan toe. Staat het er wel in moet die de hele &colour=kleur weghalen en verplaatsen met de nieuwe. Maar ik krijg de functie niet werkend. Kan iemand me helpen?

Alvast Bedankt.

10 antwoorden

Gesponsorde links
Offline Mad_Mike - 13/03/2007 16:50
Avatar van Mad_Mike PHP beginner Tip:
  1. url = String(document.location);

en
  1. if(urla.length < 2)
  2. {
  3. alert('geen color in url');
  4. }


Installeer FF en download dan de FireBug plugin, deze geeft netjes aan wat er in je javascript niet goed gaat 
Offline Godlord - 13/03/2007 16:52
Avatar van Godlord PHP gevorderde Ik heb al FF. FireBug had ik nog nooit van gehoord maarja ga ik even opzoeken.
Offline Ultimatum - 13/03/2007 16:53
Avatar van Ultimatum PHP expert https://addons.mozilla.org/firefox/1843/
Offline Godlord - 13/03/2007 16:54
Avatar van Godlord PHP gevorderde had ik al gevonden en geïnstalleerd.
Offline Mad_Mike - 13/03/2007 16:55
Avatar van Mad_Mike PHP beginner Met firebug + hier en daar een alert(); moet je eruit komen :-)
Offline Godlord - 13/03/2007 16:58 (laatste wijziging 13/03/2007 17:07)
Avatar van Godlord PHP gevorderde FireBug is niet bepaald handig. Mijn Fout Console bij FF wist dat de fout daar ook zat. Nouja ga die alertjes maar eens proberen.

Edit:
Eerste Alert: http://localhost/index.php?page=index
Tweede Alert: h
Derde Alert: t
Vierde Alert: Undefined

Ik kom uit op deze pagina: http://localhost/h&colour=t.

Edit 2: Dit is de code:
  1. function urlcolour(colour) {
  2. var url = String(document.location);
  3. alert(url);
  4. var urla = String(url.split('&colour='));
  5. alert(urla[0]);
  6. var urlb = String(urla[1].split('&', 1));
  7. alert(urlb[0]);
  8. var urlc = String(urlb[1]);
  9. alert(urlc);
  10. if (urlc != "") {
  11. urlc = '&' + urlb;
  12. }
  13. if (urla[1] == "") {
  14. document.location = url + '&colour=' + colour;
  15. } else {
  16. document.location = urla[0] + '&colour=' + colour + urlc;
  17. }
  18. }
Offline bosgroen - 13/03/2007 20:08
Avatar van bosgroen Gouden medaille

PHP interesse
var urla = String(url.split('&colour='));
alert(urla[0]);
var urlb = String(urla[1].split('&', 1));

Je doet een Stringconversie!!! en dan wil je de array raadplegen
doe eens:

var urla = url.split('&colour=');
alert(String(urla[0]));
var urlb = urla[1].split('&', 1);
Offline Godlord - 13/03/2007 22:07
Avatar van Godlord PHP gevorderde Ok, nu werkt de tweede split niet.

FireBug:
Citaat:
urla[1] has no properties
urlcolour("red")index.php (line 9)
onmousedown(mousedown clientX=0, clientY=0)index.php (line 1)
[Break on this error] var urlb = urla[1].split('&', 1);


Script:
  1. function urlcolour(colour) {
  2. var url = String(document.location);
  3. alert(url);
  4. var urla = url.split('&colour=');
  5. alert(String(urla[0]));
  6. var urlb = urla[1].split('&', 1);
  7. alert(urlb[0]);
  8. var urlc = String(urlb[1]);
  9. alert(urlc);
  10. if (urlc != "") {
  11. urlc = '&' + urlb;
  12. }
  13. if (urla[1] == "") {
  14. alert(url + '&colour=' + colour);
  15. <!-- document.location = url + 'colour=' + colour; -->
  16. } else {
  17. alert(urla[0] + '&colour=' + colour + urlc);
  18. <!--document.location = urla[0] + 'colour=' + colour + urlc; -->
  19. }
  20. }
Offline haytjes - 13/03/2007 22:44
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
  1. function urlcolour(colour)
  2. {
  3. var url = document.location.href;
  4. if( url.indexOf("&colour=") != -1 )
  5. {
  6. var posStart = url.indexOf("&colour=");
  7. var posLength = url.substr(posStart+1).indexOf("&") + 1;
  8. if(posLength == 0) posLength = url.length - posStart;
  9.  
  10. url = url.substr(0,posStart+8)+colour+url.substr(posStart+posLength);
  11.  
  12. }
  13. else if( url.indexOf("?colour=") != -1 )
  14. {
  15. var posStart = url.indexOf("?colour=");
  16. var posLength = url.substr(posStart+1).indexOf("&") + 1;
  17. if(posLength == 0) posLength = url.length - posStart;
  18.  
  19. url = url.substr(0,posStart+8)+colour+url.substr(posStart+posLength);
  20.  
  21. }
  22. else
  23. {
  24. if( url.indexOf("?") == -1) url += "?colour="+colour;
  25. else url += "&colour="+colour;
  26. }
  27. alert(url);
  28. }


sorry, maar ik werk liever met indexOf;-). Ook zijn er drie verschillende zaken die je moet onderscheiden. Oftewel staat er ?colour oftewel &colour oftewel nog niets. Die laatste is het gemakkelijkste dan voeg je het er gewoon op het einde aan toe.
Bij de twee andere ga je gewoon gaan kijken op welke plaats ?colour staat en hoelang de string daarachter is. Het enigste wat dan nog hoeft te gebeuren is dat dat stuk eruit wordt gehaald en met de nieuwe waarde wordt vervangen.

Voila
Offline Godlord - 13/03/2007 23:21
Avatar van Godlord PHP gevorderde Merci beaucoup.

Het werkt perfect. Ik zat maar te knoeien met .split maar toen bleek tot het elke letter had gesplitst. Dus ja dan zal het ook niet werken bij mij xD. Maarja toch bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s