Édition en mode texte de {IT FORMATION}

Site de formation en ligne dédié aux nouvelles technologies de l’information


Sommaire de la page :

Articles

Articles récents

Rubrique : {PHP}

Exemples d’utilisation d’une requête AJAX

Le dimanche 16 novembre 2008 par admin

ajax1.html.html

Exemple 1: traitement d'une réponse de type texte.
<html>
<head>
<title>Exemple 1</title>
<script type="text/javascript" language = "javascript">
xhr = false;
xhr = new XMLHttpRequest();
/* Fonction de traitement d'une requête Ajax:
*  Cette fonction  accepte deux paramètres
        - url: page qui reçoit la requête
        - destination: objet de la page html dans lequel le résultat sera affecté. 
Tester cet exemple avec les fichiers suivants:
ajax0.txt (Contenu: <strong>Bonjour </strong>
ajax.php (Contenu:

<?php
setlocale((LC_TIME,"fra");
echo '<strong>' . strftime("%A %B %Y"). '</strong> World !';

?>

*/      
function requete(url, destination)
{ 
/* Etape 1 Création d'une instance de l'objet XMLHttpRequest
*************************************************************/


//Vérification si l'instance a été créée avec succès */
if(xhr) {
/* Etape 2: Initilisation de la requête à l'aide de la méthode open
*******************************************************************
*   paramètre 1: Méthode http GET ou POST
*   paramètre 2: url de la page qui reçoit la requête sur le serveur http, si la requete envoie 
                 des paramètres et que la méthode http utilisée est GET alors il faut préciser 
                 aussi la valeur de ces paramètres.
                                Exemeple http://serveur/page?p1=v1&p2=v2.
        paramètre 3: peut prendre deux valeurs
                                true: la requête est envoyée en mode asynchrone 
   									(valeur par défaut).
                                false: la requête est envoyée en mode synchrone
        paramètre 4: nom d'utilisateur (optionnel)
        paramètre 5: mot de passe (optionnel)                                           
*/
xhr.open("GET", url);

/* Etape 3: Envoi de la requête:
********************************
*    la méthode send envoie la requête au serveur http (l'équivalent de la méthode submit()
         d'un formulaire) elle accepte un paramètre qui peut prendre l'une des valeurs suivantes:
                                  * null : si la requête n'admet aucun paramètre ou si la méthode 
											d'envoi est GET.
                                          * liste des paramètres de la requête  
*/
xhr.send(null);

/* Etape 4: Réception de la réponse
***********************************
* Si la requête est envoyée en mode asynchrone, on doit définir un gestionnaire d'événement qui 
* sera appelé à chaque fois que l'état de la requête change, l'état d'une requête ajax est 
* défini par l'attribut xhr.readyState qui prend les valeurs suivantes
                                                0 (requête non initialisée) : avant l'appel de 
* 																			la méthode open
                                                1 (requête initilisée, mais non encore envoyée 
													au serveur): avant l'appel de la méthoode send
                                                2 (reqête envoyée) :
                                                3 (en cours de réception) 
                                                4 (terminée) : réponse entièrement reçue.
* le gestionnaire d'événement (une fonction javascript) est défini par l'attribut 
*	xhr.onreadystatechange, dans cette exemple 
* une fonction javascript anonyme est utilisée.

*/
xhr.onreadystatechange = function()
{
//objet html dans lequel le résultat sera affecté.
var obj = document.getElementById(destination);
// On teste si la réponse est entièrement téléchargée (xhr.readyState==4 ) et que la page est reçue 
// sans erreur (xhr.status==200)
if (xhr.readyState == 4 && xhr.status == 200) 
{


/**
 Affichage du résultat de la requête
*/
obj.innerHTML = xhr.responseText;
// On peut aussi affihcer le résultat en utilisant cette instruction
/* document.f.zone1.value= xhr.responseText;*/
}// fin if
} //fin fonction anonyme

} //fin if(xhr)
}// fin fonction get
</script>
</head>
<body>
<H1>Exemple 1</H1>
<form name="f">
<input type = "button" value = "Message" onclick = "requete('http://localhost/web2/ajax0.txt',
'te')">

<input type="text" name="zone1" id="zone">

</form>
<div id="te">
<p></p>
</div>
</body>
</html>

Exemple 2: récupération d'un document XML
/* Document XML utilisé dans cet exemple
ajax2.xml:
<root><personne><nom>Larbi</nom><age>3</age></personne>
<personne><nom>Dana</nom><age>4</age></personne>
<personne><nom>Lima</nom><age>32</age></personne>
*/
<html>
<head>
<title>Exemple 1</title>

</head>
<body>
<H1>Données XML</H1>
<script type="text/javascript" language = "javascript">
xhr = false;
xhr = new XMLHttpRequest();
if(xhr) {
url="http://localhost/web2/ajax2.xml";
xhr.open("GET", url);
xhr.send(null);
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200) 
{
// Récupération du document XML
xml= xhr.responseXML;

var str = '';

//personne est de type nodeList qui contient la liste des éléments "personne"
var personne = xml.getElementsByTagName("personne");
for (i=0 ; i<personne.length ; i++)
{   
        //p est un noeud de type Element "personne" 
    p=personne.item(i);
        //p.firstChild est un élément de type nom
        // l'élément nom ne contient qu'un seul noeud de type Text: le nom de la personne. 
        //(ceci sera vrai uniquement si le document xml ne contient aucun espace entre 
        // en dehors des éléments noms et age) on accède à ce noeud  uniqueà l'aide de 
        // firstChild.
    var nom = p.firstChild.firstChild.nodeValue;
    var age = p.lastChild.firstChild.nodeValue;
    str += nom + ' ' + age + '<br />';
/*
 ___ le code suivant fonctionne même si le document xml contient des espaces ou des sauts
 ___ de ligne
for (i=0 ; i<xml.getElementsByTagName('personne').length ; i++)
{
    var personne = xml.getElementsByTagName('personne')[i];
    var nom = personne.getElementsByTagName('nom')[0].firstChild.nodeValue;
    var age = personne.getElementsByTagName('age')[0].firstChild.nodeValue;
    str += nom + ' ' + age + '<br />';
        
}



*/
}// fin for
 
document.write(str);

}// fin if
} //fin fonction anonyme

} //fin if(xhr)
</script>

</body>
</html>

{Consulter} l'article avec son forum.


Rubrique : {Compilation}

Atelier Flex

Le vendredi 30 novembre 2007 par admin

Atelier Flex

Atelier 1

1. Créer un programme qui extrait et affiche des nombres binaires valides dans une chaîne de caractères (nom du fichier de description at1_1.l, nom du programme at1_1.exe),
le format d’affichage doit être comme suit :

Nombre binaire : 010101

Tester votre programme avec différentes chaînes et notez les nombres binaires reconnus à partir des chaînes suivantes :

a. 10154697411014100000014

b. A10101b98741e418574

c. 10 1014

2. Créer un programme similaire au précédent et qui reconnaît des nombres octaux at1_2.exe)

3. Créer un programme at1_3 qui reconnaît des nombres hexadécimaux.

4. Créer at1_4 qui reconnait des nombres binaires, octaux et hexadécimaux.
(NB : créer un analyseur insensible à la casse)

5. Testez votre programme avec les chaînes suivantes :

a. 1000111

b. 1234

c. fg

d. f10014108h100017845123

Noter les résultats obtenus.

Atelier 2

Ecrire un programme qui reconnaît les identificateurs C valides dans un fichier et les affiche.

Atelier 3

Ecrire un parseur qui analyse un fichier et remplace toutes les occurrences du symbole @ par [at]

Atelier 4

Ecrire un programme qui lit un fichier C et qui reconnaît les unités lexicales (ou lexèmes) suivantes :

· un type de données

· un identificateur

· un commentaire

· un opérateur

· un mot clé (for, break, exit, while, return)

PDF - 37.8 ko

{Consulter} l'article avec son forum.


Rubrique : {Visual C#}

Visual c# Atelier 3 : Les classes

Le vendredi 23 novembre 2007 par admin

Atelier N°3 : Les classes

Contenu :

- Indexeurs

1. Gestion des employés

Créer une classe Employe contenant les champs suivants :

· _matricule : un nombre entier qui doit être incrémenté automatiquement par le système lors de la création d’un nouvel employé)

· _nom

· _prenom

· _dateNaissance

· _villeNaissance

· _salaire

· _nombreEmployes : champ entier statique

a. Créer les propriétés correspondantes (les propriétés nombreEmployes et matricule doivent être en lecture seule.)

b. Créer un indexeur qui permet d’accéder aux informations d’un employé en utilisant les noms des propriétés.

c. Initialiser la propriété statique dans un constructeur statique.

d. Créer un constructeur par défaut et un constructeur à quatre.

e. Ecrire une méthode Employe rechercherEmploye (int mat) qui retourne l’employé dont le matricule est donné en paramètre.

f. Créer une application de gestion d’un employé :

i. Ajout

ii. Suppression

iii. modification

iv. Recherche

v. Navigation : premier, précédent, suivant et dernier.

vi. Affichage du nombre d’employés

2. Jeu de dès

Réaliser une application qui simule un jeu de dès à chaque clic sur le bouton jouer, on affiche d’une manière aléatoire quatre dès dans les quatre étiquettes de la fenêtre.

a. Créer une classe NombreAleatoire qui contient une propriété (en lecture seule) nommée Val et qui retourne un nombre aléatoire compris entre 1 et 6.

b. Créer un objet Form contenant quatre étiquettes et un bouton de commande.

c. L’objet Label possède une propriété Image qui peut contenir une image (formats:png,gif)

Indications

Classe Random

La classe Random génère des nombre aléatoires de type byte, int et double

Méthodes :

· int Next() : retourne un nombre aléatoire entier. dans l’intervalle [0, +2,147,483,646]

· int Next(int n) : retourne un nombre aléatoire entier. dans l’intervalle [0, n[.

· int Next(int a, int b) : retourne un nombre aléatoire entier. dans l’intervalle [a,b[

Classe Image

La méthode Image.FromFile("nom_fichier_image") : crée et retourne un objet de type Image.

Obtenir le chemin de du dossier courant : Directory.GetCurrentDirectory()

Zip - 85 ko
PDF - 100.3 ko

{Consulter} l'article avec son forum.



{Site réalisé avec le logiciel SPIP} {IT FORMATION} {Plan du site}