PDA

Volledige versie bekijken : combobox vullen vanuit DB mbv PHP


mikiscje
%Europe/Berlin %823 %2005, 20:45
Hallo iedereen,

Ik ben bezig om een combobox te vullen vanuit een database middels php.

Dit is gedeeltelijk gelukt.

hier het script:

myData = new LoadVars();
myData.onLoad = function(){

placeTheDataIntoTheRightPlace();
};

myData.load("http://localhost/temp/dienst.php");

placeTheDataIntoTheRightPlace = function(){
myComboBox.addItemAt(0,myData.value0);
myComboBox.addItemAt(1,myData.value1);
myComboBox.addItemAt(2,myData.value2);
myComboBox.addItemAt(3,myData.value3);
myComboBox.addItemAt(4,myData.value4);

};

Ik wil echter de 5 rijen met addItem "vangen" in een for-loop

zoiets als de volgende:

for (var i=0; i<count; i++) {

myComboBox.addItemAt([i],myData.value[i]);

}

Ik kom er echter zelfs na 2 dagen zoeken niet uit hoe de syntax moet zijn om dit werkend te krijgen.

Kan iemand deze vreselijke n0000000b helpen?

Alvast bedankt!

latino
%Europe/Berlin %825 %2005, 20:49
myComboBox.addItem(myData["catnamen"+i],
myData["catid"+i]);

waarbij catnamen en catid uit je php file moet komen (catnamen en catid vervangen door je eigen tekst

mikiscje
%Europe/Berlin %879 %2005, 22:06
Ik heb (volgens mij) alle combinaties geprobeerd.

Is er iemand die het exacte voorbeeld-script wil posten, zodat ik kan kijken waarom ik er niet uit kom?

als ik deze regels in de functie zet, dan werkt alles prima.
myComboBox.addItemAt(0,myData.value0);
myComboBox.addItemAt(1,myData.value1);
myComboBox.addItemAt(2,myData.value2);
myComboBox.addItemAt(3,myData.value3);
myComboBox.addItemAt(4,myData.value4);

Alleen kan ik het niet voor elkaar krijgen om een for-loop te maken (het aantal rijen wordt meegegeven met de variabelen(&count=5))

Deze for-loop zou ik willen maken, omdat niet altijd zeker is hoeveel rijen er terug komen.

Alweer bedankt!

Roenes
%Europe/Berlin %921 %2005, 23:06
placeTheDataIntoTheRightPlace = function(){
for(var i = 0; i < this.count; ++i) //this kan omdat je in de onLoad zit van je lv object
{
myComboBox.addItemAt(i, this["value" + i]);
}
};
Volgens mij zou het dit moeten zijn :)

mikiscje
%Europe/Berlin %932 %2005, 23:23
Schiet mij maar lek!!!

Het werkt nog steeds niet.

'k Weet niet waar ik het nu nog moet zoeken.

Ik werk met flash MX professional 2004

Ben redelijk thuis in php, dus dacht dat de syntax van flash alleen even ietsje anders was en niet voor al te veel problemen kon zorgen.

Ik hoop dat iemand nog een ander idee heeft, zo niet begin ik morgen maar weer van voor af aan.
(ik was van plan om ook nog afhankelijke comboboxes te gaan maken, hihi zal nog wel even duren!)

In ieder geval heel erg bedankt voor de reply's!

ps dit is de code die ik ervan gebrouwen heb:
myData = new LoadVars();
myData.onLoad = function(){

placeTheDataIntoTheRightPlace();
};

myData.load("http://localhost/temp/dienst.php");


placeTheDataIntoTheRightPlace = function(){
for(var i = 0; i < this.count; ++i) //this kan omdat je in de onLoad zit van je lv object
{
myComboBox.addItemAt(i, this["value" + i]);
}
};

Dauntless
%Europe/Berlin %939 %2005, 23:33
Komen je vars wel juist uit je php file? Hoe zijn die gestructureerd?

mikiscje
%Europe/Berlin %946 %2005, 23:42
Als het goed is wel, want als ik de volgende regels in de funcie zet, krijg ik wel een combobox met de juiste gegevens:

myComboBox.addItemAt(0,myData.value0);
myComboBox.addItemAt(1,myData.value1);
myComboBox.addItemAt(2,myData.value2);
myComboBox.addItemAt(3,myData.value3);
myComboBox.addItemAt(4,myData.value4);

Waar kan dat aan liggen dan?

Gerrit55
%Europe/Berlin %951 %2005, 23:50
myData = new LoadVars();
myData.onLoad = function(){
inCombo();
}
//myData.load("http://localhost/temp/dienst.php");
// Uitkomst uit php
myData.value0 = 10;
myData.value1 = 20;
myData.value2 = 30;
myData.value3 = 40;
myData.value4 = 50;
myData.count = 5;
// aanroep functie
inCombo();

function inCombo(){
for (var i = 0; i<myData.count; i++) {
myCombo.addItemAt(i,"Label : " + eval("myData.value"+i),"Data " +eval("myData.value"+i));
}
}

mikiscje
%Europe/Berlin %954 %2005, 23:55
sorry!

Nog niets.

Snap er nix van.

Dauntless
%Europe/Berlin %963 %2005, 00:06
sorry!

Nog niets.

Snap er nix van.
Heb je wel een legale versie van Flash?
OL55's oplossing werkt hier gewoon...

mikiscje
%Europe/Berlin %969 %2005, 00:16
tuurlijk, want bij een illegale versie werkt de functie wel als je deze uitschrijf naar het aantal variabelen die je krijgt, maar om je te pesten werkt een for-loop in een illegale versie niet.

Sorry hoor,

Bedankt iedereen voor de antwoorden!
Ik weet niet waar het aan ligt, maar daar kom ik vanzelf achter(registreren waarschijnlijk dan uhm....)

Ik zoek wel verder of begin opnieuw.

Dauntless
%Europe/Berlin %973 %2005, 00:21
tuurlijk, want bij een illegale versie werkt de functie wel als je deze uitschrijf naar het aantal variabelen die je krijgt, maar om je te pesten werkt een for-loop in een illegale versie niet.

Sorry hoor,

Bedankt iedereen voor de antwoorden!
Ik weet niet waar het aan ligt, maar daar kom ik vanzelf achter(registreren waarschijnlijk dan uhm....)

Ik zoek wel verder of begin opnieuw.
't Is gewoon vreemd gedrag, en vreemd gedrag wordt meestal veroorzaakt door een corrupte versie... Niet slecht bedoelt hoor.:)

latino
%Europe/Berlin %301 %2005, 08:14
als je mijn voorbeeld neemt dan moet het lukken..ik heb het zelf ook gedaan

dioneo
%Europe/Berlin %522 %2005, 13:32
myCombo.dataProvider = myData;

werkt dat wel?

//edit:
waarbij myData een array is...

mikiscje
%Europe/Berlin %833 %2005, 20:59
helaas werkt het nog steeds niet.

Ik heb nu een regel toegevoegd in php om de variabele funksjun te maken, waarin de opbouw wordt gemaakt voor de gehele lijst:
myComboBox.addItemAt(0,myData.value0);
myComboBox.addItemAt(1,myData.value1);
myComboBox.addItemAt(2,myData.value2);
myComboBox.addItemAt(3,myData.value3);
myComboBox.addItemAt(4,myData.value4);

Op welke manier kan ik deze variabele funksjun aanroepen in as, waardoor deze uitgevoerd wordt op dezelfde manier als zou ik het direkt in as typen?

Nogmaals bedankt voor de moeite!

dioneo
%Europe/Berlin %853 %2005, 21:28
je kunt geen functie in php typen die later door as wordt uitgevoerd, hooguit via eval() maar dan moet de functie al in as staan.
hier de stappen die voor mij perfect werken;

1- geef je combobox de instancename 'myCombo'
2- laadt een string in via php die is zoals
mijnRuweData=aaaa|bBbbB|c|DDDdDdddddDdddD|ee|ff
(dat doe je bij voorkeur via een LoadVars)
3- in as zet je dan binnen de onLoad

myData=mijnRuweData.split("|");
myCombo.dataProvider=myData;

4- indien het niet werkt, loop naar de winkel en koop mxprofessional 2004 en probeer het nog eens :-)

mikiscje
%Europe/Berlin %893 %2005, 22:27
YEEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAHH HHHHHHHHHHHH

Eindelijk gelukt!!!!!

met deze code:

myData = new LoadVars();
myData.onLoad = function(){

placeTheDataIntoTheRightPlace();
};

myData.load("http://localhost/temp/dienst.php");

placeTheDataIntoTheRightPlace = function(){
var i = 0;
for(var i = 0; i < myData["count"]; ++i){
myComboBox.addItem(myData["value"+i],
myData["label"+i]);
}

};

Hè gelukkig......

Misschien wil ik wel te veel en te snel, maar het is lekker toch gelukt!

'k heb 2 dagen geprutst met alle codes, stap voor stap een klein onderdeel uitgeprobeerd, en toen alles samengevoegd.

Op naar de volgende uitdaging!

Allemaal bedankt!!

latino
%Europe/Berlin %357 %2005, 09:34
dat had ik je meteen al gezegd ;)

en misshien zo nog beter:

myData = new LoadVars();
myData.onLoad = placeTheDataIntoTheRightPlace;

myData.load("http://localhost/temp/dienst.php");

placeTheDataIntoTheRightPlace = function(){
var i = 0;
for(var i = 0; i < myData["count"]; ++i){
myComboBox.addItem(myData["value"+i],
myData["label"+i]);
}

};