2010-07-13 7 views
1

J'essaie d'intégrer mon cerveau pour obtenir des données dans mon projet d'une manière que je peux utiliser. Je veux utiliser MySQL & PHP mon application Flashbuilder et je ne remplis pas un DataGrid donc. Par souci de simplicité, dans ma table de base de données j'ai 3 colonnes "ID, Title & Content".
Je veux utiliser ceci pour remplir les différents états de mon projet flashbuilder.peupler dynamiquement des champs de texte dans Flashbuilder

Normalement, dans une page web je pourrais dire dans l'instruction SQL SELECT * FROM table WHERE ID = 1 pour obtenir la première ligne de l'info et je pouvais mettre mon titre et le contenu où je veux les sur ma page

Je peux changer la requête SELECT * FROM table WHERE ID = 2 pour remplir la page 2 pour obtenir son titre et son contenu.

Dans flashbuilder, tout est sur la même page et je ne comprends pas comment remplir un champ de texte singulier pour un titre ou une zone de contenu avec un seul champ de la base de données.

Il semble que tous les exemples sur le web sont essentiellement pour les données.

Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

0

Je vais essayer de vous aider.

Vous avez la table de base de données (ID, Titre, Contenu). Allez-y et créez un service Web en PHP qui va envoyer une requête ping à la base de données et récupérer les données. Je ne sais pas grand-chose sur PHP, donc je ne peux pas vous aider avec des détails. Si possible, je recommande d'utiliser quelque chose comme AMFPHP ou ZendAMF pour transférer des données entre Flex et PHP.

Dans Flex, vous pouvez récupérer les données à l'aide de RemoteObject, WebService ou HTTPService. Vous obtiendrez les données en quelque sorte. Pour les besoins de cet exemple, je suppose que vous utilisez une forme d'AMF et que vous avez un tableau d'objets de valeur.

Chaque objet contient une propriété ID, title et content, représentant une seule ligne dans votre table de base de données.

Maintenant, que faites-vous avec ce tableau? Il serait étrange d'essayer d'afficher une collection de données dans une seule entrée de texte. Laissez vous faire semblant voulez créer un formulaire pour modifier le premier élément:

<Form> 
<formItem label="title"> 
<textInput id="titleInput" text="{resultsFromPHP[0].title}" /> 
</formitem> 
<formItem label="content"> 
<textInput id="contentInput" text="{resultsFromPHP[0].content}" /> 
</formitem> 
<formItem > 
<button label="Process Input" click="processInput()" /> 
</formitem> 
</form> 

Donc, vous avez une forme qui permet des entrées, et dispose d'un bouton. Il suffit d'écrire le gestionnaire de clic:

protected function processInput():void{ 
resultsFromPHP[0].content = contentInput.text 
resultsFromPHP[0].title = titleInput.text 
// call other PHP Service to update data 
} 

Est-ce que l'aide?

Ce code a été écrit dans le navigateur et aura probablement besoin d'être peaufiné pour être compilé.

+0

Eh bien, j'ai eu quelque chose à travailler et j'apprécie que vous me mettre sur le chemin! J'obtiens des erreurs de liaison "La liaison de données ne sera pas capable de détecter les modifications lors de l'utilisation d'un opérateur de crochet (pour Array, veuillez utiliser ArrayCollection.getItemAt() à la place." protected function fetchDB(event:FlexEvent):void { getResults.token = pagesService.getAllPages(); } dmschenk

+0

Vous recevez des erreurs ou des avertissements? Je recommande d'enregistrer getResults.lastResults dans une variable locale plutôt que d'accéder directement à votre service. Faites cela dans votre gestionnaire de résultats. Ensuite, modifiez simplement votre code comme le suggère l'avertissement: text.Page1 = "{savedResult.getItemAt (0).title} " – JeffryHouser

+0

vous avez raison ... Je reçois des avertissements, je vais essayer. – dmschenk

Questions connexes