webForumDet fria alternativet

Array av objekt möjligt?

JavaScript

11 svar · 306 visningar · startad av rastapopolus

Medlem sedan mars 200295 inlägg
Frågan#1

Hej!

Kan jag göra en array av objekt?

Min konstruktor:

/*
Objektet underrubrik
*/
function underRubrik (id_submenu,id_menu,name,target,submenuprio) {
this.id_submenu = id_submenu;
this.id_menu = menu;
this.name = name;
this.target = target;
this.submenuprio = submenuprio
}

Här är anropet i PHP koden:

...
while($row = mysql_fetch_array($result)){
echo "<script language=\"JavaScript\">\n";
echo " rubrik[\"$raknare\"] = new underRubrik(\"$row[id_submenu]\",\"$row[id_menu]\",\"$row[name]\",\"$row[target]\",\"$row[submenuprio]\");\n";
echo "</script>\n";
// -- slut teststruktur
$raknare++;
...

har fått till echo prylen tidigare, men nu får jag error

Medlem sedan sep. 20021 655 inlägg
#2

Det som är intressant är JavaScript-koden som genereras av PHP.
Kan du visa den?

Om det är ett PHP-felmeddelande du får fram får du söka svar i PHP-forumet istället.

Medlem sedan juli 2003303 inlägg
#3

Som svar på din fråga: Ja, man kan ha en array bestående av objekt. Visa som sagt av dectgap koden som genereras.

Medlem sedan mars 200295 inlägg
#4

inget fel i php koden, då får jag parse error normalt
det är javascript kods problem i tex internet explorer
det har blivit inflation i escape characters (för att kunna köra javascript i php avsnittet)
hatar att koda så men har inget val

vet inte hur jag får upp javascripts felmedd.
använder DreamWeaver för att utveckla
förresten nån som vet hur man får DreamWeaver att ssh:a korrekt? ballar ur...

Medlem sedan nov. 20017 144 inlägg
#5

Visa källa --> kopiera koden mellan <script> och </script> --> klistra in i denna tråd.

Medlem sedan mars 200295 inlägg
#6

kod!

// nedanst ska vara med om javascript lösning
echo "<script language=\"JavaScript\">\n";
echo " rubrik[\"$raknare\"] = new underRubrik(\"$row[id_submenu]\",\"$row[id_menu]\",\"$row[name]\",\"$row[target]\",\"$row[submenuprio]\");\n";
echo "</script>\n";
$raknare++;

...sen läser den nästa rad ur MySQL databasen, det funkar som det ska...

Medlem sedan nov. 20017 144 inlägg
#7

nej,nej,nej,nej... ;)
Om du vill få hjälp i javascriptforumet så får du kopiera koden ur källkoden.
Annars så måste man ju dessutom kunna en massa konstiga serverspråk.

Medlem sedan mars 200295 inlägg
#8

bör tilläggas att så här skulle det se ut om det vore ren javascript kod, dvs inte skriva javascript kod till browsern via php:

rubrik[index] = new underRubrik (row[id_submenu], row[id_menu], row[name], row[target], row[submenuprio]);

Kan man utöka rubrik-arrayen dynamiskt?

Har deklarerat den längst upp i header javascript delen:
var rubrik = new Array;

Medlem sedan nov. 20017 144 inlägg
Medlem sedan mars 200295 inlägg
#10

fint
jag tycks inte komma åt objektets attribut:

alert(rubrik[0].name);
har ett utropstecken i Internet Explorer

Medlem sedan mars 200295 inlägg
#11

man måste tydligen ha ett CP-stört anrop:

rubrik[0] = {id_submenu: 1, id_menu: 2, name: "hej", target: "hopp", submenuprio: 3};

Medlem sedan juni 20004 308 inlägg
#12

Enda felet jag ser är att i constructor-definitionen använder du referensen "id_menu" medans inne i constructorn har du skrivit
"menu".

"CP-anropet" :) är egentligen bara en förkortning för en objekt-definition. Se detta exempel (rubrik[0] och rubrik[1] blir identiska);

var rubrik=new Array();
function underRubrik (id_submenu,id_menu,name,target,submenuprio) {
	this.id_submenu = id_submenu;
	this.id_menu = id_menu;
	this.name = name;
	this.target = target;
	this.submenuprio = submenuprio;
}
rubrik[0] = {id_submenu: 1, id_menu: 2, name: "hej", target: "hopp", submenuprio: 3};
rubrik[1] = new underRubrik(1,2,"hej","hopp",3);

for(var x in rubrik[0]){
	alert(rubrik[0][x]+":"+rubrik[1][x]);
}
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)