Kom ihåg mig?
Home Menu

Menu


javascript hjälp? variabel problem!

Ämnesverktyg Visningsalternativ
Oläst 2010-05-19, 16:09 #1
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Standard javascript hjälp? variabel problem!

Hejsan,

sitter med ett litet experiment och hoppar på ett jobbig fel.

Jag har en PHP fil som genererar tre variabler och blir en JS fil.
Kod:
var Title1 = "string1";
var Title2 = "string2";
var Title3 = "string3";

var Antal = 3; // antalet titlar!
och när jag ska hämta ut informationen i en html sida så blir den tom.

Kod:
<script type="text/javascript" src="titlar.php"></script>
</head>

<body>
<script type="text/javascript">

for(inits = 1; inits < Antal + 1; inits++){
	
        var theTitle = Title + inits.toString();
	document.write(); // ska skriva ut alla titlar i loop!
	
}
</script>
men när jag kör koden händer inget..

Är rätt så ny på javascript men vet var felet ligger men vet inte hur jag ska fixa lösningen. Hjälp tack?

Tacksam!
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 16:23 #2
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Varför använder du dig inte utav JSON?
Jimpsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 16:29 #3
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av Jimpsson Visa inlägg
Varför använder du dig inte utav JSON?
hmm, har aldrig testat det på detta viset, använde det snabbt och enkelt när jag byggde ett Chrome plugin...
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 16:29 #4
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av youheardit Visa inlägg
Kod:
<script type="text/javascript" src="titlar.php"></script>
</head>

<body>
<script type="text/javascript">

for(inits = 1; inits < Antal + 1; inits++){
	
        var theTitle = Title + inits.toString();
	document.write(); // ska skriva ut alla titlar i loop!
	
}
</script>
Den här raden:
Kod:
var theTitle = Title + inits.toString();
Betyder följande:
Skapa en variabel med namnet theTitle. Sätt värdet på den lika med värdet på variabeln Title plus strängvärdet av variabeln inits.
Variabeln Title finns inte och värdet blir då "undefined".
theTitle kommer då få värdet "undefined1", "undefined2" och "undefined3";

På nästa rad i koden skriver du ut en tom sträng. Funktionen document.write tar ett argument (mellan paranteserna), nämligen vad det är den skall skriva ut.

Om du vill hämta variablerna på det sätt du beskriver kan man möjligen använda eval så man kan skapa ny JS-kod som körs. Det är absolut inte att rekommendera eftersom det kan tillåta besökaren att köra egen kod.

Jag föreslår att du gör titlarna till en array istället. Då kan du ha denna kod:
PHP-kod:
var Title = []; // Skapa en array
Title[1] = "string1";
Title[2] = "string2";
Title[3] = "string3";

var 
Antal Title.length// antalet titlar! (Varje array har en egenskap som heter length som talar om hur många värden som finns i arrayen) 
Sedan i din JS-kod har du följande:
Kod:
var theTitle = Title[inits];
Lycka till!



---

EDIT: Tycker det kan vara överkurs att använda JSON för denna informationen. Om du inte menade att han ska använda ett objekt för att lagra titlarna.
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 16:32 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
När du skriver Title så är det ett variabelnamn. Skriver du 'Title' så är det en sträng med värdet Title. Document.write skriver ut det som står inom parentesen, alltså i ditt fall ingenting.

Eftersom det är i JS felet ligger så flyttar jag till klientsidan.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 16:55 #6
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
qson: Tackar verkligen! mycket smartare lösning! Tack! allting funkade också som det skulle! tack återigen!

tartareandesire: Jo, satt själv och funderade vart jag skulle lägga tråden, men tack!
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 17:04 #7
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Kul att det hjälpte
Vill bara tillägga att egentligen börjar arrayer räkna sina index från 0. Dessutom behöver man inte ange index när man definerar den.

PHP-kod:
var Title = []; // Skapa en array
Title[] = "string1";
Title[] = "string2";
Title[] = "string3";

// Man kan också göra så här:
var Title = ["string1""string2""string3"];

// ... //

// Sedan för att loopa behöver man inte definera variabeln Antal eftersom du har antal titlar i Title.length.
// Tänk bara på att indexen börjar på 0 om man inte har valt nåt annat.

for(inits 0inits Title.lengthinits++){
    
       
/* ... */
    

qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-19, 17:39 #8
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
Citat:
Ursprungligen postat av qson Visa inlägg
Kul att det hjälpte
Vill bara tillägga att egentligen börjar arrayer räkna sina index från 0. Dessutom behöver man inte ange index när man definerar den.

PHP-kod:
var Title = []; // Skapa en array
Title[] = "string1";
Title[] = "string2";
Title[] = "string3";

// Man kan också göra så här:
var Title = ["string1""string2""string3"];

// ... //

// Sedan för att loopa behöver man inte definera variabeln Antal eftersom du har antal titlar i Title.length.
// Tänk bara på att indexen börjar på 0 om man inte har valt nåt annat.

for(inits 0inits Title.lengthinits++){
    
       
/* ... */
    

jo tack! upptäckte det själv senare då jag fick "undefined" och då vet jag vad som är fel. tack ändå!
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-20, 09:58 #9
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Citat:
Ursprungligen postat av Jimpsson Visa inlägg
Varför använder du dig inte utav JSON?
Jag fattar inte varför det alltid är någon som måste föreslå json, jquery, flash eller något annat i varje tråd där javascript kommer upp... På vilket sätt skulle JSON hjälpa i det här konkreta fallet?

youheardit: om du använder det qson föreslog så kan du dessutom använda bara document.write(Title.join("")); för att skriva ut hela array:en.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-20, 16:41 #10
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Citat:
Ursprungligen postat av martine Visa inlägg
Jag fattar inte varför det alltid är någon som måste föreslå json, jquery, flash eller något annat i varje tråd där javascript kommer upp... På vilket sätt skulle JSON hjälpa i det här konkreta fallet?

youheardit: om du använder det qson föreslog så kan du dessutom använda bara document.write(Title.join("")); för att skriva ut hela array:en.
Jag nämnde inte ens jQuery och flash skulle jag aldrig rekommendera för just detta, att ens ta upp flash tycker jag är lite väl irrelevant. Anledningen till att jag skrev JSON är eftersom det handlar om data från serversidan, JSON är lätthanterligt och enkelt att bygga på om man så vill.
Jimpsson är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:54.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017