CodeS-SourceS
Rechercher un code, un tuto, une réponse
Juin 2017


Prémisses


La table des tests


Script de création


CREATE DATABASE cours DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;



USE DATABASE cours;


DROP TABLE IF EXISTS villes;


CREATE TABLE IF NOT EXISTS villes (


cp varchar(5) collate latin1_general_ci NOT NULL,


nom_ville varchar(50) collate latin1_general_ci NOT NULL,


PRIMARY KEY (cp)


) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


INSERT INTO villes (cp, nom_ville) VALUES ('06000', 'Nice'),


('59000', ''),


('69000', 'Lyon'),


('75011', 'Paris'),


('75012', 'Paris'),


('75021', 'Paris 21'),


('75022', 'Paris 22');

Ajouter un enregistrement dans une BD via un formulaire


Objectif


Insérer une nouvelle ville dans la table Villes de la base Cours.


Utiliser LoadVars et send().





Le script PHP


<?php


    $cp = $_REQUEST["cp" * ;


    $nom_ville = $_REQUEST["nom_ville" * ;


    $lien = mysql_connect("localhost","root","");


    mysql_select_db("cours",$lien);


    $ls_insert = "INSERT INTO villes(cp, nom_ville) VALUES('$cp','$nom_ville')";


    mysql_query($ls_insert, $lien);


    if(mysql_errno($lien) == 0) echo "Insertion réussie"; else echo mysql_error($lien);


?>


Syntaxes


Création d'un objet pour les attributs de la requête.


var envoi = new LoadVars();


Création d'un attribut et affectation d'une valeur.


envoi.nom_attribut = valeur;


Exécution de la requête d'envoi de valeurs avec la méthode send().


La méthode send() permet d'envoyer des valeurs.


envoi.send("url", "cible" [, "méthode" * );


L'url est composée du protocole, de l'adresse du serveur, du chemin et du document PHP.


Par exemple : http://localhost/flash_php/villes_ajout.php.


La cible prend les valeurs suivantes : "_self", "_blank", "_parent", "_top".


Les méthodes sont POST ou GET. La méthode POST est la méthode par défaut.


Démarche


Créez un nouveau .fla.


Ajouter des éléments de formulaire (Ctrl/F7).


, ,


Nommez les TextInput tb_cp et tb_nom_ville,


codez.


Code


on(click)


{


    var attributs = new LoadVars();


    


    attributs.cp = _root.tb_cp.text;


    attributs.nom_ville = _root.tb_nom_ville.text;


    attributs.send("http://localhost/flash_php/villes_ajout.php", "_self", "POST");


}


Commentaires


Cette méthode affiche un page HTML suite à l'insertion. Cf les paragraphes suivants avec les résultats dans la scène.

Visualiser un enregistrement d'une table d'une BD


Objectif


Créer une interface permettant de saisir un CP et à partir de celui-ci afficher le nom de la ville correspondante.


Utiliser LoadVars et sendAndLoad().





Le code PHP


<?php


    $cp = $_REQUEST["cp" * ;


    $lien = mysql_connect("localhost","root","");


    mysql_select_db("cours",$lien);


    $ls_sql "SELECT nom_ville FROM villes WHERE cp $cp";


    $rs = mysql_query($ls_sql, $lien);


    if(mysql_errno($lien) != 0) die(mysql_error($lien));


    $enr = mysql_fetch_array($rs);


    echo "nom_ville=" . $enr[0 * ;


?>


Le code PHP doit renvoyer une URL type attribut=valeur.


En test direct dans le navigateur le résultat est :


URL testéeRésultat
http://localhost/flash_php/ville_visu.php?cp=59000nom_ville=Lille
http://localhost/flash_php/ville_visu.php?cp=75011nom_ville=Paris



Syntaxes


Création d'objets pour les attributs de la requête aussi bien en envoi qu'en réception.


var envoi = new LoadVars();


var resultats = new LoadVars();


Création d'un attribut et affectation d'une valeur.


envoi.nom_attribut valeur; ou resultats.nom_attribut valeur;


Exécution de la requête d'envoi et de récupération de valeurs avec la méthode sendAndLoad().


La méthode sendAndLoad() permet d'envoyer des valeurs et aussi d'en recevoir.


envoi.sendAndLoad("url", resultats, "méthode");


Récupération des résultats.


Il faut que PHP renvoie une URL type attribut=valeur.


La récupération finale est réalisée via une fonction anonyme.


resultat.onLoad = function(success)


A partir du moment où l'on utilise la méthode sendAndLoad() il faut créer une fonction anonyme de callback car il faut temporiser la réception des données du serveur. C'est seulement quand le serveur a renvoyé les données que l'on peut commencer à traiter les résultats. D'où l'utilisation de l'événement onLoad.


Démarche


Créez un nouveau .fla.


Ajoutez un Label, un InputText, un Button, un TextField.


Code


on(click)


{


    var attributs = new LoadVars();


    var resultats = new LoadVars();


    


    attributs.cp = _root.tb_cp.text;


    attributs.sendAndLoad("http://localhost/flash_php/ville_visu.php", resultats, "GET");


    


    resultats.onLoad = function(succes)


    {


        if(succes) _root.tf_nom_ville.text = "Ville : " + resultats.nom_ville;


        else _root.tf_nom_ville.text = "Echec";


    }


}


A la place de this il est possible d'utiliser la variable resultats.

Visualiser une table d'une BD


Objectif


Visualiser les enregistrements de la table Villes de la base Cours.





Le code PHP


<?php


    $lien = mysql_connect("localhost","root","");


    mysql_select_db("cours",$lien);


    $ls_sql = "SELECT cp, nom_ville FROM villes";


    $rs = mysql_query($ls_sql, $lien);


    if(mysql_errno($lien) != 0) die(mysql_error($lien));


    $sCps = "cps=";


    $sVilles = "&noms_villes=";


    while($enr = mysql_fetch_row($rs))


    {


        $sCps .= $enr[0 * . ";";


        $sVilles .= $enr[1 * . ";";


    }


    echo $sCps . $sVilles;


?>


Le résultat renvoyé est celui-ci :


cps=06000;59000;69000;75011;75012;75021;&noms_villes=Nice;Lille;Lyon;Paris;Paris;Paris 21;


donc la requête renvoie deux attributs cps et noms_villes.


Syntaxe


var tableau = chaîne.split("séparateur");


Démarche


Créez un nouveau .fla.


Ajoutez un TextArea nommé ta_villes.


Codez le scénario.


Note : il serait possible de mettre un TextField multiline à la place du TextArea mais il faudrait gérer le défilement vertical avec une barre de défilement ce qui est fait automatiquement avec le TextArea.


Code


var attributs = new LoadVars();


var resultats = new LoadVars();


_root.ta_villes.text = "";


resultats.onLoad = function(success)


{


    if(success)


    {


        var sCps = resultats.cps;


        var sNoms_Villes = resultats.noms_villes;


        var tCps = sCps.split(";");


        var tNoms_Villes = sNoms_Villes.split(";");


        for(i=0; i<tCps.length - 1; i++)


        {


            _root.ta_villes.text += tCps[i * + "-" + tNoms_Villes[i] + "\n";


        }


    }


    else _root.ta_villes.text = "Echec";


}


attributs.sendAndLoad("http://localhost/flash_php/villes_visu.php", resultats, "GET");


Commentaires


Malgré l'abscence d'attributs à envoyer, à la différence des deux précédents scripts, il faut quand même déclarer une variable d'envoi de type LoadVars().


Une erreur survient si l'URL de la requête est erronée ou si le serveur est indiponible mais si une erreur SQL survient aucun affichage. Il faut dans ce cas gérer l'erreur au niveau du PHP.


Cf paragraphe suivant.

Adresse d'origine

A voir également

Publié par mou3inM.
Ce document intitulé «  As2 et php  » issu de CodeS-SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Ajouter un commentaire

Commentaires

Donnez votre avis
Vérification de l'âge d'un visiteur
Rebond sur une surface(théorie)