SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
PHP : Tableaux & formulaires
1. Tableau
Définition
En informatique, un tableau (array en anglais) est une structure de
données qui consiste en un ensemble d'éléments ordonnés
accessibles par leur indice (ou index). C'est une structure de
données de base que l'on retrouve dans chaque langage de
programmation.
Source : http://fr.wikipedia.org
1.1 Tableau numéroté
Valeur VS Index
« Frodon » « Gandalf » « Aragorn » « Legolas » Valeurs
Index 0 1 2 3
Créer un tableau
<?php
$characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas');
?>
Lire une valeur
<?php
$characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas');
echo $characters[0]; // Frodon
echo $characters[1]; // Gandalf
echo $characters[2]; // Aragorn
echo $characters[3]; // Legolas
?>
Ajouter une valeur
<?php
$characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas');
$characters[] = 'Gimli';
echo $characters[4]; // Gimli
$characters[5] = 'Boromir';
echo $characters[5]; // Boromir
?>
Modifier une valeur
<?php
$characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas');
$characters[1] = 'Gimli';
echo $characters[1]; // Gimli
?>
1.2 Tableau associatif
Valeur VS Index
« Frodon » « Gandalf » « Aragorn » « Legolas » Valeurs
Index Elijah Wood Ian McKellen Viggo Mortensen Orlando Bloom
Créer un tableau
<?php
$leSeigneurDesAnneaux = array(
'Elijah Wood' => 'Frodon',
'Ian McKellen' => 'Gandalf',
'Viggo Mortensen' => 'Aragorn',
'Orlando Bloom' => 'Legolas'
);
?>
Lire une valeur
<?php
$leSeigneurDesAnneaux = array(
'Elijah Wood' => 'Frodon',
'Ian McKellen' => 'Gandalf',
'Viggo Mortensen' => 'Aragorn',
'Orlando Bloom' => 'Legolas'
);
echo $leSeigneurDesAnneaux['Ian McKellen']; //Gandalf
?>
Ajouter une valeur
<?php
$leSeigneurDesAnneaux = array(
'Elijah Wood' => 'Frodon',
'Ian McKellen' => 'Gandalf',
'Viggo Mortensen' => 'Aragorn',
'Orlando Bloom' => 'Legolas'
);
$leSeigneurDesAnneaux['Sean Bean'] = 'Boromir'
echo $leSeigneurDesAnneaux['Sean Bean']; //Boromir
?>
Modifier une valeur
<?php
$leSeigneurDesAnneaux = array(
'Elijah Wood' => 'Frodon',
'Ian McKellen' => 'Gandalf',
'Viggo Mortensen' => 'Aragorn',
'Orlando Bloom' => 'Legolas'
);
$leSeigneurDesAnneaux['Viggo Mortensen'] = 'Grands-pas'
echo $leSeigneurDesAnneaux['Viggo Mortensen']; // Grands-pas
?>
1.3 Tableau de tableaux de tableaux …
Valeur VS Index
« Frodon » « Gandalf » « Aragorn » « Legolas » 
Le seigneur
des anneaux
Star wars
Matrix
« Yoda » « Anakin » « C-3PO » « R2-D2 » 
« Néo » « Trinity » « Morpheus » « Smith » 
0 1 2 3
Créer un tableau à deux dimensions
<?php
$movies = array(
'Le seigneur des anneaux' => array(
'Frodon',
'Gandalf',
'Aragorn',
'Legolas'),
'Star wars' => array(
'Yoda',
'Anakin',
'C-3PO',
'R2-D2'),
'Matrix' => array(
'Néo',
'Trinity',
'Morpheus',
'Smith')
);
?>
Lire une valeur
<?php
$movies = array(
'Le seigneur des anneaux' => array(
'Frodon',
'Gandalf',
'Aragorn',
'Legolas'),
'Star wars' => array(
'Yoda',
'Anakin',
'C-3PO',
'R2-D2'),
'Matrix' => array(
'Néo',
'Trinity',
'Morpheus',
'Smith')
);
echo $movies['Star wars'][2]; // C-3PO
echo $movies['Matrix'][0]; // Néo
?>
Ajouter une valeur
<?php
$movies = array(
'Le seigneur des anneaux' => array(
'Frodon',
'Gandalf',
'Aragorn',
'Legolas'),
'Star wars' => array(
'Yoda',
'Anakin',
'C-3PO',
'R2-D2'),
'Matrix' => array(
'Néo',
'Trinity',
'Morpheus',
'Smith')
);
$movies['Mad Max'] = array('Max Rockatansky', 'Jim Goose');
echo $movies['Mad Max'][1]; // Jim Goose
?>
Modifier une valeur
<?php
$movies = array(
'Le seigneur des anneaux' => array(
'Frodon',
'Gandalf',
'Aragorn',
'Legolas'),
'Star wars' => array(
'Yoda',
'Anakin',
'C-3PO',
'R2-D2'),
'Matrix' => array(
'Néo',
'Trinity',
'Morpheus',
'Smith')
);
echo $movies['Matrix'][1]; // Trinity
$movies['Matrix'][1] = 'Cypher';
echo $movies['Matrix'][1]; // Cypher
?>
1.4 Utilitaires
La boucle foreach (1)
<?php
$leSeigneurDesAnneaux = array(
'Elijah Wood' => 'Frodon',
'Ian McKellen' => 'Gandalf',
'Viggo Mortensen' => 'Aragorn',
'Orlando Bloom' => 'Legolas'
);
foreach ($leSeigneurDesAnneaux as $key => $value) {
echo $key . ' : ' . $value;
}
?>
La boucle foreach (2)
<?php
$movies = array(
'Le seigneur des anneaux' => array(
'Frodon',
'Gandalf',
'Aragorn',
'Legolas'),
'Star wars' => array(
'Yoda',
'Anakin',
'C-3PO',
'R2-D2'),
'Matrix' => array(
'Néo',
'Trinity',
'Morpheus',
'Smith')
);
foreach ($movies as $key => $value) {
echo $key . ' : ';
foreach ($value as $movieKey => $movie) {
echo $movie. ', ';
}
echo '<br/>';
}
?>
Tester l’existence d’une variable
<?php
$tab = array('truc', 'machin');
if(isset($tab[0])){
echo $tab[0]; // truc
}
if(isset($tab[2])){
echo $tab[2];
}
?>
Compter les éléments d’un tableau
<?php
$tab = array('truc', 'machin');
echo count($tab); // 2
?>
2. Formulaires
Le code html
<form action="test.php" method="POST">
<input type="text" name="toto" />
<input type="submit" />
</form>
Action & method
Action : page de traitement du formulaire
Method : GET ou POST
GET : transfert des données par l’url
POST : transfert «invisible» des données
Récupérer les données envoyées
<?php
echo $_GET['nom_du_champ_de_formulaire'];
echo $_POST['nom_du_champ_de_formulaire'];
?>
Exemple (1)
<form action="test.php" method="POST">
<input type="text" name="toto" />
<input type="submit" />
</form>
index.php test.php
<?php
echo $_POST[‘toto'];
?>
Exemple (2)
<form action="page.php" method="GET">
<input type="text" name="prenom" />
<input type="submit" />
</form>
index.php page.php
<?php
echo $_GET[‘prenom'];
?>
Envoyer un paramètre sans formulaire
<a href="test.php?nom=michel&prenom=jean">
Mon super lien
</a>
index.php
test.php
<?php
echo $_GET['prenom'];
echo $_GET['nom'];
?>
4. Mise en pratique
Exercice : En route pour l’école !
Créer la page « réponse » indiquant si l’utilisateur a entré la
bonne réponse et la page « début de quizz ».
Ecrans disponibles ici :
https://www.dropbox.com/sh/som5j63lbp6xbph/AAA1XV3kIht2x-MfBPfIho1Ia?dl=0
L’utilisateur doit pouvoir enchainer les questions / réponses à
l’infinie.
Merci pour votre attention.

Más contenido relacionado

La actualidad más candente

Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormMickael Perraud
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsAlexandre Salomé
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeDamien Seguy
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleThierry Gayet
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHPJean-Marie Renouard
 
Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Antonio Fontes
 
Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Maxime Menant
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Claude Falguiere
 

La actualidad más candente (20)

Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_Form
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explications
 
Swift
SwiftSwift
Swift
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
 
Audits php
Audits phpAudits php
Audits php
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Chap2
Chap2Chap2
Chap2
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012Trouvez la faille! - Confoo 2012
Trouvez la faille! - Confoo 2012
 
Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?Pourquoi Ruby et Ruby On Rais sont geniaux ?
Pourquoi Ruby et Ruby On Rais sont geniaux ?
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Algo poo ts
Algo poo tsAlgo poo ts
Algo poo ts
 
Introduction à Ruby
Introduction à RubyIntroduction à Ruby
Introduction à Ruby
 
Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012
 

Destacado

Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkJean Michel
 
Javascript #9 : barbarian quest
Javascript #9 : barbarian questJavascript #9 : barbarian quest
Javascript #9 : barbarian questJean Michel
 
#3 html in the real world
#3 html in the real world#3 html in the real world
#3 html in the real worldJean Michel
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesJean Michel
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvcJean Michel
 
Les modèles économiques du web
Les modèles économiques du webLes modèles économiques du web
Les modèles économiques du webJean Michel
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le domJean Michel
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécificationJean Michel
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookiesJean Michel
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs Jean Michel
 
WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive designJean Michel
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisationJean Michel
 
#1 entreprendre au xxiè siècle
#1 entreprendre au xxiè siècle#1 entreprendre au xxiè siècle
#1 entreprendre au xxiè siècleJean Michel
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?Jean Michel
 
Startup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt meStartup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt meJean Michel
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJean Michel
 
Une introduction à Javascript
Une introduction à JavascriptUne introduction à Javascript
Une introduction à JavascriptJean Michel
 
Javascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJavascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJean Michel
 

Destacado (20)

Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto framework
 
Javascript #9 : barbarian quest
Javascript #9 : barbarian questJavascript #9 : barbarian quest
Javascript #9 : barbarian quest
 
#3 html in the real world
#3 html in the real world#3 html in the real world
#3 html in the real world
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummies
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
 
Les modèles économiques du web
Les modèles économiques du webLes modèles économiques du web
Les modèles économiques du web
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le dom
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécification
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs
 
WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive design
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisation
 
#1 entreprendre au xxiè siècle
#1 entreprendre au xxiè siècle#1 entreprendre au xxiè siècle
#1 entreprendre au xxiè siècle
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?
 
Startup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt meStartup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt me
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobs
 
Une introduction à Javascript
Une introduction à JavascriptUne introduction à Javascript
Une introduction à Javascript
 
Javascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJavascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgm
 

Más de Jean Michel

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customersJean Michel
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQueryJean Michel
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapJean Michel
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invaderJean Michel
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvasJean Michel
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategieJean Michel
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designJean Michel
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneJean Michel
 
Architecture logicielle #1 : introduction
Architecture logicielle #1 : introductionArchitecture logicielle #1 : introduction
Architecture logicielle #1 : introductionJean Michel
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introductionJean Michel
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctionsJean Michel
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles Jean Michel
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introductionJean Michel
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitchJean Michel
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événementsJean Michel
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introductionJean Michel
 

Más de Jean Michel (18)

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customers
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQuery
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : Bootstrap
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invader
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvas
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategie
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented design
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezone
 
Architecture logicielle #1 : introduction
Architecture logicielle #1 : introductionArchitecture logicielle #1 : introduction
Architecture logicielle #1 : introduction
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introduction
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctions
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitch
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événements
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introduction
 

PHP #3 : tableaux & formulaires

  • 1. PHP : Tableaux & formulaires
  • 3. Définition En informatique, un tableau (array en anglais) est une structure de données qui consiste en un ensemble d'éléments ordonnés accessibles par leur indice (ou index). C'est une structure de données de base que l'on retrouve dans chaque langage de programmation. Source : http://fr.wikipedia.org
  • 5. Valeur VS Index « Frodon » « Gandalf » « Aragorn » « Legolas » Valeurs Index 0 1 2 3
  • 6. Créer un tableau <?php $characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas'); ?>
  • 7. Lire une valeur <?php $characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas'); echo $characters[0]; // Frodon echo $characters[1]; // Gandalf echo $characters[2]; // Aragorn echo $characters[3]; // Legolas ?>
  • 8. Ajouter une valeur <?php $characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas'); $characters[] = 'Gimli'; echo $characters[4]; // Gimli $characters[5] = 'Boromir'; echo $characters[5]; // Boromir ?>
  • 9. Modifier une valeur <?php $characters = array('Frodon', 'Gandalf', 'Aragorn', 'Legolas'); $characters[1] = 'Gimli'; echo $characters[1]; // Gimli ?>
  • 11. Valeur VS Index « Frodon » « Gandalf » « Aragorn » « Legolas » Valeurs Index Elijah Wood Ian McKellen Viggo Mortensen Orlando Bloom
  • 12. Créer un tableau <?php $leSeigneurDesAnneaux = array( 'Elijah Wood' => 'Frodon', 'Ian McKellen' => 'Gandalf', 'Viggo Mortensen' => 'Aragorn', 'Orlando Bloom' => 'Legolas' ); ?>
  • 13. Lire une valeur <?php $leSeigneurDesAnneaux = array( 'Elijah Wood' => 'Frodon', 'Ian McKellen' => 'Gandalf', 'Viggo Mortensen' => 'Aragorn', 'Orlando Bloom' => 'Legolas' ); echo $leSeigneurDesAnneaux['Ian McKellen']; //Gandalf ?>
  • 14. Ajouter une valeur <?php $leSeigneurDesAnneaux = array( 'Elijah Wood' => 'Frodon', 'Ian McKellen' => 'Gandalf', 'Viggo Mortensen' => 'Aragorn', 'Orlando Bloom' => 'Legolas' ); $leSeigneurDesAnneaux['Sean Bean'] = 'Boromir' echo $leSeigneurDesAnneaux['Sean Bean']; //Boromir ?>
  • 15. Modifier une valeur <?php $leSeigneurDesAnneaux = array( 'Elijah Wood' => 'Frodon', 'Ian McKellen' => 'Gandalf', 'Viggo Mortensen' => 'Aragorn', 'Orlando Bloom' => 'Legolas' ); $leSeigneurDesAnneaux['Viggo Mortensen'] = 'Grands-pas' echo $leSeigneurDesAnneaux['Viggo Mortensen']; // Grands-pas ?>
  • 16. 1.3 Tableau de tableaux de tableaux …
  • 17. Valeur VS Index « Frodon » « Gandalf » « Aragorn » « Legolas »  Le seigneur des anneaux Star wars Matrix « Yoda » « Anakin » « C-3PO » « R2-D2 »  « Néo » « Trinity » « Morpheus » « Smith »  0 1 2 3
  • 18. Créer un tableau à deux dimensions <?php $movies = array( 'Le seigneur des anneaux' => array( 'Frodon', 'Gandalf', 'Aragorn', 'Legolas'), 'Star wars' => array( 'Yoda', 'Anakin', 'C-3PO', 'R2-D2'), 'Matrix' => array( 'Néo', 'Trinity', 'Morpheus', 'Smith') ); ?>
  • 19. Lire une valeur <?php $movies = array( 'Le seigneur des anneaux' => array( 'Frodon', 'Gandalf', 'Aragorn', 'Legolas'), 'Star wars' => array( 'Yoda', 'Anakin', 'C-3PO', 'R2-D2'), 'Matrix' => array( 'Néo', 'Trinity', 'Morpheus', 'Smith') ); echo $movies['Star wars'][2]; // C-3PO echo $movies['Matrix'][0]; // Néo ?>
  • 20. Ajouter une valeur <?php $movies = array( 'Le seigneur des anneaux' => array( 'Frodon', 'Gandalf', 'Aragorn', 'Legolas'), 'Star wars' => array( 'Yoda', 'Anakin', 'C-3PO', 'R2-D2'), 'Matrix' => array( 'Néo', 'Trinity', 'Morpheus', 'Smith') ); $movies['Mad Max'] = array('Max Rockatansky', 'Jim Goose'); echo $movies['Mad Max'][1]; // Jim Goose ?>
  • 21. Modifier une valeur <?php $movies = array( 'Le seigneur des anneaux' => array( 'Frodon', 'Gandalf', 'Aragorn', 'Legolas'), 'Star wars' => array( 'Yoda', 'Anakin', 'C-3PO', 'R2-D2'), 'Matrix' => array( 'Néo', 'Trinity', 'Morpheus', 'Smith') ); echo $movies['Matrix'][1]; // Trinity $movies['Matrix'][1] = 'Cypher'; echo $movies['Matrix'][1]; // Cypher ?>
  • 23. La boucle foreach (1) <?php $leSeigneurDesAnneaux = array( 'Elijah Wood' => 'Frodon', 'Ian McKellen' => 'Gandalf', 'Viggo Mortensen' => 'Aragorn', 'Orlando Bloom' => 'Legolas' ); foreach ($leSeigneurDesAnneaux as $key => $value) { echo $key . ' : ' . $value; } ?>
  • 24. La boucle foreach (2) <?php $movies = array( 'Le seigneur des anneaux' => array( 'Frodon', 'Gandalf', 'Aragorn', 'Legolas'), 'Star wars' => array( 'Yoda', 'Anakin', 'C-3PO', 'R2-D2'), 'Matrix' => array( 'Néo', 'Trinity', 'Morpheus', 'Smith') ); foreach ($movies as $key => $value) { echo $key . ' : '; foreach ($value as $movieKey => $movie) { echo $movie. ', '; } echo '<br/>'; } ?>
  • 25. Tester l’existence d’une variable <?php $tab = array('truc', 'machin'); if(isset($tab[0])){ echo $tab[0]; // truc } if(isset($tab[2])){ echo $tab[2]; } ?>
  • 26. Compter les éléments d’un tableau <?php $tab = array('truc', 'machin'); echo count($tab); // 2 ?>
  • 28. Le code html <form action="test.php" method="POST"> <input type="text" name="toto" /> <input type="submit" /> </form>
  • 29. Action & method Action : page de traitement du formulaire Method : GET ou POST GET : transfert des données par l’url POST : transfert «invisible» des données
  • 30. Récupérer les données envoyées <?php echo $_GET['nom_du_champ_de_formulaire']; echo $_POST['nom_du_champ_de_formulaire']; ?>
  • 31. Exemple (1) <form action="test.php" method="POST"> <input type="text" name="toto" /> <input type="submit" /> </form> index.php test.php <?php echo $_POST[‘toto']; ?>
  • 32. Exemple (2) <form action="page.php" method="GET"> <input type="text" name="prenom" /> <input type="submit" /> </form> index.php page.php <?php echo $_GET[‘prenom']; ?>
  • 33. Envoyer un paramètre sans formulaire <a href="test.php?nom=michel&prenom=jean"> Mon super lien </a> index.php test.php <?php echo $_GET['prenom']; echo $_GET['nom']; ?>
  • 34. 4. Mise en pratique
  • 35. Exercice : En route pour l’école ! Créer la page « réponse » indiquant si l’utilisateur a entré la bonne réponse et la page « début de quizz ». Ecrans disponibles ici : https://www.dropbox.com/sh/som5j63lbp6xbph/AAA1XV3kIht2x-MfBPfIho1Ia?dl=0 L’utilisateur doit pouvoir enchainer les questions / réponses à l’infinie.
  • 36. Merci pour votre attention.