« SPARQL Protocol and RDF Query Language/Travail pratique/PHP les fonctions » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
m Robot : Changement de type cosmétique
Ligne 31 :
Nous allons rapidement aborder chacun de ces points.
 
=== Les fonctions ===
==== Définition ====
Imaginons que le code suivant est utilisé dans plusieurs pages de votre site Web :
<source lang="php">
Ligne 38 :
//Construisons un tableau de notes :
$notes=array(2,5,7,10,11,13,15,17,18);
echo 'Vos notes du trimestre :<br />';
foreach($notes as $note){
echo '- '.$note.'<br />';
}
?>
Ligne 57 :
}}
 
==== Utilisation ====
Utilisation d'une fonction :
*On place la fonction au début du code(au sein de balises PHP).
Ligne 63 :
*'''On ne la crée qu'une fois, tandis qu'on la convoque autant de fois que l'on veut'''
 
==== Syntaxe ====
 
Voici la coquille de la fonction pour résoudre notre problème :
Ligne 81 :
 
 
On fait, comme si $nombre existait déjà.<br />
Voici un exemple de code qui effectue ce qu'on veut obtenir :
<source lang="php">
Ligne 106 :
$notes=array(2,5,7,10,11,13,15,17,18);
//Et maintenant, précisons notre boucle foreach pour y convoquer notre fonction.
echo 'Vos notes du trimestre :<br />';
foreach($notes as $note){
echo '- '.colore($note).'<br />';
}
?>
Ligne 137 :
//La boucle foreach scanne le tableau
//en appliquant la fonction colore
echo 'Vos notes du trimestre :<br />';
foreach($notes as $note){
echo '- ';
colore($note);
echo '<br />';
}
?>
Ligne 150 :
Bien que votre fonction se définissait avec "colore($nombre)", vous pouvez l'appeler avec "colore($note)". Ça ne pose aucun problème. Le nom de la variable utilisée comme paramètre au sein de la fonction est celui que vous voulez.
 
==== Plusieurs paramètres ====
Les fonctions peuvent être définies avec plusieurs paramètres.
 
Ligne 172 :
</source>
 
==== Valeur de retour ====
Si on ne veut pas une fonction qui affiche, mais une fonction qui par exemple calcule et renvoie une valeur, '''on utilisera le mot clé return'''.
 
Ligne 217 :
Penser à "ranger" la valeur retournée dans une variable de "réception".
 
==== Importer des fonctions ====
Si votre fonction est utilisée dans au moins deux pages Web, '''vous pouvez tout-à-fait mettre vos fonctions dans un autre fichier et partager votre fonction dans plusieurs pages Web'''.
Il vous suffit de '''convoquer le fichier une seule fois au tout début de chacune de vos pages PHP'''.
Ligne 246 :
<?php
function DernierMag(){
echo'Dernière parution mise à jour :<br />
PIF GADGET<br />
le 10/01/2009';
}
Ligne 269 :
}}
 
=== La commande switch ===
 
La commande switch gère les conditions multiples
Ligne 321 :
<body>
<form name="inscription" method="post" action="monCV.php">
Entrez votre : <br />
Nom : <input type="text" name="nom"/> <br />
Prénom : <input type="text" name="prenom"/> <br />
Adresse : <input type="text" name="adresse"/> <br />
Code postal : <input type="text" name="code_postal"/> <br />
Ville : <input type="text" name="ville"/> <br />
Téléphone: <input type="text" name="telephone"/> <br />
Dernière expérience professionnelle : <br />
Date de début (aaaa-mm-jj) : <input type="text" name="date_debut"/> <br />
Toujours en poste : <input type ="checkbox" name="poste_actuel" >
ou Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin"/> <br />
Poste : <input type="text" name="poste"/> <br />
Employeur : <input type="text" name="societe"/> <br />
Description : <br /><textarea name="description" cols="50" rows="5"></textarea> <br />
<!-- On modifie juste cette ligne -->
Mots-clés : <input type="text" name="mots_cles"/> <br />
<input type="submit" name="valider" value="OK"/>
</form>
Ligne 350 :
<?php
echo 'Vos données entrées : '.'<br />';
if(isset($_POST['valider'])){
foreach($_POST as $index=>$valeur){
if ($index!='valider'){
echo '- '.$index.' : '.$valeur.'<br />';
}
}
Ligne 377 :
//affichage
?>
<b><?php echo $nom.' '.$prenom; ?></b><br />
<b><?php echo $adresse; ?></b><br />
<b><?php echo $code_postal.' '.$ville; ?></b><br />
Tel : <b><?php echo $telephone; ?></b><br />
<br />
Expériences : <br />
<?php
if ($poste_actuel == true){
Ligne 390 :
}
?>
: <?php echo '<b>'.$poste.' ('.$societe.')</b>' ?><br />
<?php echo '<b>'.nl2br($description).'</b><br />' ?>
<!-- Affiche la liste des mots clés -->
 
Mots clés : <b><?php
//print_r($mots_cles);
echo implode(', ',$mots_cles); ?></b><br />
</body>
</html>
Ligne 402 :
}}
 
=== Gestion d'un formulaire dynamique ===
On veut qu’un utilisateur puisse mettre autant d’expériences qu’il le souhaite.
 
Ligne 421 :
<body>
<form name="inscription" method="post" action="monCV.php">
Entrez votre : <br />
Nom : <input type="text" name="nom"/> <br />
Prénom : <input type="text" name="prenom"/> <br />
Adresse : <input type="text" name="adresse"/> <br />
Code postal : <input type="text" name="code_postal"/> <br />
Ville : <input type="text" name="ville"/> <br />
Téléphone: <input type="text" name="telephone"/> <br />
 
Dernière expérience professionnelle : <br />
 
Date de début (aaaa-mm-jj) :
<input type="text" name="date_debut[]"/> <br />
Toujours en poste : <input type ="checkbox" name="poste_actuel[0]" >
ou Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin[]"/> <br />
Poste : <input type="text" name="poste[]"/> <br />
Employeur : <input type="text" name="societe[]"/> <br />
Description : <br />
<textarea name="description[]" cols="50" rows="5"></textarea> <br />
Mots-clés : <input type="text" name="mots_cles[]"/> <br />
Date de début (aaaa-mm-jj) :
<input type="text" name="date_debut[]"/> <br />
Toujours en poste : <input type ="checkbox" name="poste_actuel[1]" >
ou Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin[]"/> <br />
Poste : <input type="text" name="poste[]"/> <br />
Employeur : <input type="text" name="societe[]"/> <br />
Description : <br />
<textarea name="description[]" cols="50" rows="5"></textarea> <br />
Mots-clés : <input type="text" name="mots_cles[]"/> <br />
Date de début (aaaa-mm-jj) :
<input type="text" name="date_debut[]"/> <br />
Toujours en poste : <input type ="checkbox" name="poste_actuel[2]" >
ou Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin[]"/> <br />
Poste : <input type="text" name="poste[]"/> <br />
Employeur : <input type="text" name="societe[]"/> <br />
Description : <br />
<textarea name="description[]" cols="50" rows="5"></textarea> <br />
Mots-clés : <input type="text" name="mots_cles[]"/> <br />
 
<input type="submit" name="valider" value="OK"/>
Ligne 496 :
//affichage
?>
<b><?php echo $nom.' '.$prenom; ?></b><br />
<b><?php echo $adresse; ?></b><br />
<b><?php echo $code_postal.' '.$ville; ?></b><br />
Tel : <b><?php echo $telephone; ?></b><br />
<br />
Expériences : <br />
<hr/>
<?php
Ligne 544 :
}
echo ' : ';
echo '<b>'.$arrayExperience['poste'].' ('.$arrayExperience['societe'].')</b><br />';
echo '<b>'.nl2br($arrayExperience['description']).'</b><br />';
echo 'Mots clés : <b>'. implode(', ',explode(' ',$arrayExperience['mots_cles'])) .'</b><br /><br />';
}
</source>
}}
 
=== Création du formulaire dynamique ===
Maintenant qu’on peut afficher '''n''' expériences dans un CV. On va faire en sorte que le fichier HTML puisse à la demande de l’utilisateur rajouter des expériences.
 
Ligne 563 :
var nouvelleExperience = document.createElement("div");
nb_experience++;
nouvelleExperience.innerHTML = '<b>Expérience ' + nb_experience + ' : </b><br /> \
Date de début (aaaa-mm-jj) : <input type="text" name="date_debut[]"/> <br />\
Toujours en poste : <input type ="checkbox" name="poste_actuel[' + (nb_experience - 1) + ']" >ou \
Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin[]"/> <br />\
Poste : <input type="text" name="poste[]"/> <br />\
Employeur : <input type="text" name="societe[]"/> <br />\
Description : <br /><textarea name="description[]" cols="50" rows="5"></textarea> <br /> \
Mots-clés : <input type="text" name="mots_cles[]"/> <br /><br />';
divExperiences.appendChild(nouvelleExperience);
} // function AjouteExperience()
Ligne 578 :
Pour indiquer la zone "où insérer les champs pour décrire son expérience et le bouton insérer", on remplace les précédents champs par le code suivant :
<source lang="html4strict">
Expériences professionnelles : <br />
<div id="experiences"></div>
<input type="button" value="Ajouter une expérience" onClick="AjouteExperience();" />
Ligne 596 :
 
nb_experience++;
nouvelleExperience.innerHTML = '<b>Expérience ' + nb_experience + ' : </b><br /> \
Date de début (aaaa-mm-jj) : <input type="text" name="date_debut[]"/> <br />\
Toujours en poste : <input type ="checkbox" name="poste_actuel[' + (nb_experience - 1) + ']" >ou \
Date de fin (aaaa-mm-jj) : <input type="text" name="date_fin[]"/> <br />\
Poste : <input type="text" name="poste[]"/> <br />\
Employeur : <input type="text" name="societe[]"/> <br />\
Description : <br /><textarea name="description[]" cols="50" rows="5"></textarea> <br /> \
Mots-clés : <input type="text" name="mots_cles[]"/> <br /><br />';
 
divExperiences.appendChild(nouvelleExperience);
Ligne 611 :
<body>
<form name="inscription" method="post" action="monCV.php">
Entrez votre : <br />
Nom : <input type="text" name="nom"/> <br />
Prénom : <input type="text" name="prenom"/> <br />
Adresse : <input type="text" name="adresse"/> <br />
Code postal : <input type="text" name="code_postal"/> <br />
Ville : <input type="text" name="ville"/> <br />
Téléphone: <input type="text" name="telephone"/> <br />
Expériences professionnelles : <br />
<div id="experiences"></div>
<input type="button" value="Ajouter une expérience" onClick="AjouteExperience();" />