Page 1 sur 1

funktion comment les appeles

Posté : 06 oct. 2005, 18:27
par marc_3
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

Posté : 06 oct. 2005, 19:17
par Cyrano
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>

Posté : 06 oct. 2005, 19:32
par marc_3
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

l'aiguille dans une botte de foin

Posté : 07 oct. 2005, 13:00
par Invité
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; ?>

Posté : 07 oct. 2005, 13:18
par Cyrano
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" :)

Posté : 07 oct. 2005, 17:45
par marc_3
Merci encore

Marc_3