funktion comment les appeles

Eléphant du PHP | 72 Messages

06 oct. 2005, 18:27

Bonjour,

J'essaie d'ameliorer un code qui marche deja en ecrivant une fonction.
Etant novice (c'est ma premiere fonction) j'ai besoin d'un coup de main.

Voila le code un peu abrege sur lequel je travaille. Il recoit un string dans la variable $chTemp_7 de la forme a,b,c,d,e,f au maximum toute les autres combinaisons entre une et six lettres sont possibles
Il y a bien sur un checkBox par lettre.

Code : Tout sélectionner

<input type="checkbox" name="mein_C_Box[]" value="a" <?php $start = 0; $end = strlen ($chTemp_7); while ($start<$end){ $letter = $chTemp_7{$start}; $start = $start + 2; if($letter == "a"){echo " checked=\"checked\"";} } ?> /><b>: L<sup>A</sup>T<sub>E</sub>X</b>
Le code ne fait que prendre le string et lire un symbole sur deux pour ne pas prendre les virgules, compare ensuite avec les if($letter == "a") et autre et reaffiche une coche dans le check-box concerne.

Pour l'instant je n'ai pas trouve mieux que cela

Code : Tout sélectionner

<input type="checkbox" name="mein_C_Box[]" value="a" <?php include "lettre_fonc.php"; if(lettre_fonc ($chTemp_7) == "a"){echo " checked=\"checked\"";} } ?> /><b>: L<sup>A</sup>T<sub>E</sub>X</b>
avec la fonction rangee dans un autre fichier nomme lettre_fonc.php

Code : Tout sélectionner

<?php function lettre_fonc($chTemp_7) { $start = 0; $end = strlen ($chTemp_7); while ($start<$end){ $letter = $chTemp_7{$start}; return $letter; } } ?>
Est-ce que quelqu'un peut me dire si l'idee est realisable ou ce que je ferai mieux de faire

D'avance merci

marc_3

Mammouth du PHP | 19672 Messages

06 oct. 2005, 19:17

Il y a peut-être plus simple :
<?php $checked = strstr($chTemp_7, "a") ? " checked=\"checked\"" : null; ?>
<input type="checkbox" name="mein_C_Box[]" value="a"<?php echo($checked); ?> /><b>: L<sup>A</sup>T<sub>E</sub>X</b>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

06 oct. 2005, 19:32

Je dois sortir la et j'ai pas trop de temps mais celle la je veus la comprendre, tu peus compte sur encore quelque mail a ce sujet.

Je suis impressione

Merci pour la reponse et @+

marc_3

Invité
Invité n'ayant pas de compte PHPfrance

07 oct. 2005, 13:00

l'aiguille dans une botte de foin,

Elle est forte quand meme celle-la. Plus je vois de chose avec php plus j'apprecie ce langage que je trouve de plus en plus efficace.

J'ai regarde dans la doc et j'ai trouve la commande strstr. Le moins que l'on puisse dire c'est que les concepteurs du langage font tout pour rendre les choses aussi facile que possible. Par contre pour trouver la fonction d'ont on a besoin on ne sais plus comment traiter l'avalanche d'info. C'est la vie.

Je comprend le fragment de code comme cela, est-ce que tu peux me dire si cela est juste?

Code : Tout sélectionner

<?php $checked = strstr($chTemp_7, "a") ? " checked=\"checked\"" : null; ?>
On declare une variable a laquelle on affecte la valeur retournee
par la fonction strstre() cad ici la lettre a,
ensuite l'operateur "?" regarde si la lettre est bien contenue dans la variable et execute les operations demandees dans la suite de l'expression ici .

D'avance merci

Marc_3

? " checked=\"checked\"" : null;

Si la variable contien bien a (ici) la fonction execute la premiere partie de l'expression " checked=\"checked\"" : si ce n'est pas le cas elle execute la deuxieme : null; ?>

Mammouth du PHP | 19672 Messages

07 oct. 2005, 13:18

C'est ça, enfin on dira pas "la fonction exécute", mais la valeur attribuée à la variable sera la première si la condition est vraie, le ":" correspond au "else" et la seconde valeur qui suit sera attribuée si le condition est fausse: on appelle ça un opérateur "ternaire" :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

07 oct. 2005, 17:45

Merci encore

Marc_3