webForumDet fria alternativet

Array av objekt möjligt?

11 svar · 306 visningar · startad av rastapopolus

rastapopolusMedlem sedan mars 200295 inlägg
#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

dectgapMedlem 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.

CheguelinMedlem 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.

rastapopolusMedlem 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...

Jesper TMedlem sedan nov. 20017 144 inlägg
#5

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

rastapopolusMedlem 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...

Jesper TMedlem 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.

rastapopolusMedlem 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;

Jesper TMedlem sedan nov. 20017 144 inlägg
rastapopolusMedlem sedan mars 200295 inlägg
#10

fint
jag tycks inte komma åt objektets attribut:

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

rastapopolusMedlem 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};

JojoxxMedlem 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]);
}
128 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)