Welkom!

Deel je kennis met anderen in deze Flashgemeenschap!
Gebruikersnaam:
Wachtwoord:
Wachtwoord opslaan?
Wachtwoord vergeten?
Dynamische combobox Flash/PHP/MySQL
89 downloads, 24633 keer gelezen
(November 25, 2002)
Waardering: 37 keer gestemd 
 3.3 van de 5
Eigenschappen
Flash Versie  n/a
Moeilijkheidsgraad  n/a

Formaat:   2 KB

In deze tutorial wordt uitgelegd hoe je een dynamische combobox kunt maken met Flash, PHP en MySQL.

  Untitled Document Hoe maak je een dynamische combobox met flash/php/mysql.

Begin met php string binnen te halen


P laats een lege movie op je scene, hoeft geen instance naam te hebben.
I n deze movie:
----------------
frame 1 --> label "load_php"
actionscript -->
loadVariables("test.php?" + (Math.random() * 1000000), this, "POST");
gotoAndStop("Loading1");

--
(Math.random() functie heeft met chaching van php te maken)
----------------
frame 10 --> label "loading"
actionscript -->
stop();
----------------
frame 20 --> label "ok"
actionscript -->
stop();
----------------
frame 30 --> label "error"
actionscript -->
stop();
-----------------
terug naar main scene
selecteer deze movie -->F9(actionscripts)
-----------------------
onClipEvent (data) {
if (this.result == "Okay") {
this.gotoAndPlay("ok");
} else {
this.gotoAndPlay("error");
}
}

-------------------------
"onClipEvent (data)"
als de loadVariables wordt uitgevoerd, dan....

"if (this.result == "Okay")"
checked de variabele "&result=Okay" die je als eerste meegeeft in je php
string.
lukt de query niet geef je deze mee "&result=Error" bijvoorbeeld.

"this.gotoAndPlay("ok");"
ga naar frame met label "ok"

this.gotoAndPlay("error");
ga naar frame met label "error"

-----------
dit is een heel mooi principe dat bij flash 5 en ook wel Mx wordt gebruikt.
hier heb je een mooie indeling voor als het aan't laden is, als het geladen
is, en als er een error is.
Flash mx heeft wel een voordeel met het loadVars() object.
Maar ik denk dat je met dit principe wel verder kan of er toch op verder kan
bouwen.


vervolg

De string vanuit PHP moet er als volgt uitzien:


&count=10&country_description0=belgium&country_id=1&country_description1=eng
eland&country_id1=2&...........

De kan hier ook ASP, PHP, .txt, .xml of gewoon actionscripting voor gebruiken.

De combobox bouwen doen we als volgt.

iList = new Array();
myItem = new Object();
iList[0] = myItem;

for (i=0; i<count; i++) {
myItem = new Object();
test = this["country_description"+i]
myItem.label = test
myItem.data = this["country_id"+i];
iList[i+1] = myItem;
}
ComboCountry.setDataProvider(iList);

//onchange handler,

ComboCountry.setChangeHandler("CountryHandler");

function CpuntryHandler(component){
trace(ComboCountry.getSelectedItem().data);
}
stop();


V oila, ene mooie combobox dynamisch opgebouwd met php en mysql.

Voorbeeld op http://www.rembo.be onderdeel shops --> volledig php/flash/mysql

Mijn eerste tutorial, ik hoop dat hij wat handig was.

 

Geef hier je waardering: Matig 1 2 3 4 5 Geweldig!
  Waardering:
bombobox variabele niet in mail? a a (12 December 2003, 14:06)

Al een tijdje actief met flash, heb er veel zin in .... maar ik kan de oplossing hier niet vinden? www.jointideas.info/targetgolf

Mijn verzend button bevat:

on (release) {
 if (voorkeur eq "" or hoelang eq "" or wijsvinger eq "" or handicap eq "" or swing eq "") {
  gotoAndPlay(56);
 } else {
  loadVariablesNum("clubfittingform.php", 0, "POST");
  gotoAndPlay(36);
 }
}

Mijn PHP formulier bevat:

<?
$date = date ("l, F jS, Y");
$time = date ("h:i A");
$to = "mijn emailadres hier";
$msg = "$voorkeur\n\n";
$msg .= "$hoelang\n\n";
$msg .= "$wijsvinger\n\n";
$msg .= "$handicap\n\n";
$msg .= "$swing\n\n";


mail($to, $subject, $msg, "From: targetgolfworks.nl\n Reply-To: $email\n");

?>

Een keyframe bevat:

wijzig_cb1();
// om je variabele een defaultwaarde te geven, als je niets kiest
stop();
function wijzig_cb1() {
 onderwerp = cb1.getValue();
 status = voorkeur;
}

De voorkeur variabele is de combobox. Hij geeft wel aan als ik hem test dat hij hem versturen zal, houd dus in denk ik dat alle variabele ingevuld zijn die nodig zijn.

Mail komt wel aan, alleen de info van de combobox komt niet in mijn mail te staan. Een fout in de PHP zorgt er toch voor dat hij normaal niet zou aankomen.?

Kan iemand mij helpen?


Transferring data... J Stromba (08 September 2003, 13:18)
Is het normaal nadat de connectie is gemaakt met de database dat je de melding Transferring data from (servernaam) krijgt in de statusbalk onderin de browser
fla? Go Dus (11 April 2003, 13:03)

Mooi werk! Maarruhh.. je hebt zeker geen .fla-tje voor ons?

Ik zou het namelijk heel graag `echt willen begrijpen..

 

thnxs!


oplossing Jo Corthals (20 December 2002, 14:17)

dat stuk komt in de action layer waar de label frame op "ok" staat. Daar kom je alles je alle goed uit php krijgt. daar bouw je dan ook je combobox op.

&count=10 staat er eerst omdat je moet weten hoeveel items je hebt om je lus voor het opbouwen van de combobox te doen. Bij mij was dit nu 10, maar dat hangt van het aantal records af in je database. inpricipe vind je die zo in php

$sql_query = "SELECT * FROM landen";

$result = mysql_query($sql_query,$db) or die(mysql_error());

$aantal_records  = mysql_num_rows($result);

 

Ik hoop dat dit helpt

 


iets preciezerder :D not found (20 December 2002, 10:43)

dit had ik net nodig ... 2 vraagjes nog ...
waar moet dit deel komen te staan:

iList = new Array();
myItem = new Object();
iList[0] = myItem;

for (i=0; i<count; i++) {
myItem = new Object();
test = this["country_description"+i]
myItem.label = test
myItem.data = this["country_id"+i];
iList[i+1] = myItem;
}
ComboCountry.setDataProvider(iList);

//onchange handler,

ComboCountry.setChangeHandler("CountryHandler");

function CpuntryHandler(component){
trace(ComboCountry.getSelectedItem().data);
}
stop();

en waarom staat er &count=10 als eerst ?

alvast bedankt


1-5 | 6-8