créer avec function

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : créer avec function

par Truc » 04 juil. 2007, 11:04

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par waga77 » 04 juil. 2007, 11:03

Bonjour a tous et merci pour votre aide.

Voilà j'ai enfin réussi ma function.
le code de ma fonction:

Code : Tout sélectionner

<?php function couleur_ligne () { global $ladatejour; global $status; global $delai1; if($status=="En cours" and $delai1 > $ladatejour) { echo'<tr bgcolor="#00FF00" >'; } elseif($status=="En cours" and $delai1< $ladatejour){ echo'<tr bgcolor="#FFCC00">'; } else{ echo'<tr bgcolor="#0099FF" >'; } } couleur_ligne(); ?>
Sur ma page ou j'affiche le résultat de défini comme cela :

Code : Tout sélectionner

<?php $select = "select * FROM mandat ORDER BY mandate Desc "; $result1 = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); while($row2 = mysql_fetch_array($result1)) { $status=$row2["status"]; $delai1=$row2["delai"]; $ladatejour= date("Y-m-d"); } ?>
et pour afficher ma ligne qui va changer de couleur selon les informations dans delai et status :

Code : Tout sélectionner

<?php couleur_ligne();?>
Encore merci pour vos infos et votre aide[/code]

par orgerix » 03 juil. 2007, 20:54

Le problème vient surtout du fait que la fonction n'accede pas à $row2 et à $ladatejour car une fonction ne peut pas accèder à des variables du reste du code qui ne sont pas passer en argument.

Essaye ca :
<?php
function essai($couleur,$row2,$ladatejour){  
if($row2["status"]=="En cours" and $row2["delai"]> $ladatejour)  
{  
echo'<td colspan="2" class="mm4" bgcolor="#0099FF">';  
}  
elseif($row2["status"]=="En cours" and $row2["delai"]< $ladatejour){  
echo'<td colspan="2" class="mm4" bgcolor="#FFCC00">';  
}  
else{  
echo'<td colspan="2" class="mm4" bgcolor="#00FF00">';  
}  
return($couleur);  
}  
?> 
Par contre, je ne comprends pas trop l'interet de mettre $couleur en argument puisque la variable n'est pas utilisé par la fonction.

par hworang » 03 juil. 2007, 20:29

Je crois qu'il y a un probleme avec les quotes mais je ne suis pas sur.
Puisque sur mon editeur de texte,sa prend des balises en texte.^^

par waga77 » 03 juil. 2007, 20:28

Merci a vous 2, je viens d'aller lire mais là je ne comprends plus rien. je comprends pas comment faire a cause de if et elseif.

par AB » 03 juil. 2007, 20:02

A l'intérieur d'une fonction si tu veux utiliser des variables qui ne sont pas passées en paramètre (comme $couleur), il faut déclarer ces variables globales.
ex
global $ladatejour;
//etc
Une petite recherche google sur "fonction portée des variables" devrait te donner un résultat instructif ex http://www.lephpfacile.com/cours/21-la- ... -variables

par chrislabricole » 03 juil. 2007, 19:57

ben déja, commence par mettre <?php et ?> au lieu de <? et ?>

créer avec function

par waga77 » 03 juil. 2007, 18:36

Bonsoir a tous,

j'essaye d'écrire une function pour mon site car cela me prendrai trop de place autrement.

C'est la première fois que je fais ce genre de function avec if et elseif.

Code : Tout sélectionner

<? function essai($couleur){ if($row2["status"]=="En cours" and $row2["delai"]> $ladatejour) { echo'<td colspan="2" class="mm4" bgcolor="#0099FF">'; } elseif($row2["status"]=="En cours" and $row2["delai"]< $ladatejour){ echo'<td colspan="2" class="mm4" bgcolor="#FFCC00">'; } else{ echo'<td colspan="2" class="mm4" bgcolor="#00FF00">'; } return($couleur); } ?>
mais cela ne fonctionne pas.es ce que quelqu'un peu m'aider. Merci pour votre aide.