cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008
-
12 juin 2008 à 11:09
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 2010
-
12 juin 2008 à 16:47
Bonjour a tous !
Voila j'explique ce que je voudrais que le script réalise :
-En ayant entré un nom de client ou un bout de nom dans un formulaire, il va chercher dans un fichier client.txt si le nom de client existe.
-En entrant un bout de nom, (c'est la mon gros problème), je voudrais qu'il m'affiche tout les noms commençant par les lettres tapées. Par exemple si je tappe "an", il devrait m'afficher André ou Anne !
-L'utilisateur choisit un des nom proposés et l'amène à la page suivante.
-Si les nom proposées ne correspondent pas a l'utilisateur, retour au formulaire de saisie.
foreach( $liste_noms as $nom )
{
// Ici, on prend chaque ligne
// Puis on ne garde que le nom, càd du début de la ligne au séparateur de donnée (ici |)
$nom = substr($nom, 0, strpos($nom, '|'));
if( $name_post == substr($nom, 0, $name_post_len) )
{
$return[] = $nom;
}
}
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 12 juin 2008 à 16:38
Hum ...
Donc, tu récupère un Array (avec ANDRE, ANNE, ANIS, ANIESSE, ...)
Par contre, tu peux faire différente choses :
soit en javascript (mais peut être désactivé), soit avec un select (une liste de choix de client ; avantage, pas de limite), soit en posant des questions.
Pour les quetions (le plus contraignant à mon avis) tu fais un truc du genre :
Si c'est oui, on le redirige vers la page, sinon, on repose la question avec le nom suivant. Par contre, dans ce cas là, ce n'est plus :
$name_post = strtolower(htmlspecialchars($_POST['client']));
cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008 12 juin 2008 à 11:21
j'ajoute mon code de départ pour vous éclairer un peu !
$contenu_du_fichier = file_get_contents('client.txt');
$noms = preg_replace('`[0-9]{8};([a-zA-Z0-9. ]+);(.+)`', '$1', $contenu_du_fichier); // utile en cas de nom d'entreprise different du nom du client
cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008 12 juin 2008 à 11:56
Alors, non dans mon fichier .txt, il n'y a pas que des noms, il y a aussi leur adresses, nom de sociètés... etc
Sinon, avec tes méthodes, que je tape n'importe quel nom, il m'affiche :
Array
(
[0] => claire
[1] => claude
[2] => clementine
)
C'est deja un bon début, il faudrait "automatiser" le truc je pense ! Mais je vois pas trop comment ^^
cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008 12 juin 2008 à 14:06
J'arrive presque au but recherché, le seul problème c'est que je ne connais pas forcèment tout les noms disponible dans le fichier. Y'a t-il un moyen pour que cela fonctionne quand meme ?
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 12 juin 2008 à 14:17
Hum, que veux-tu dire ?
En fait, tu peux faire $noms = file_get_contents('mon_fichier.txt'); ainsi tu récupère ton fichier puis tu le parse (l'interprète).
Mon $noms était mon fichier à moi (pour ne aps en crée un).
Par contre, je pense qu'il aurait été préférable pour toi d'utiliser une base de donnée ... celà aurait été plus simple pour la gestion et la lecture (un simple LIKE 'nom%' aurait suffit ^^)
<hr />Si ma reponse te convient, merci de l'accepter !
cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008 12 juin 2008 à 14:30
En fait, mon fichier client.txt est un fichier que je me sers pour tester mon script. Mais après, il y aura des vrais noms de clients et il y en aura probablement pas mal, donc je me vois mal écrire tout les noms dans le script ^^.
Et je ne peux malheuresement pas utiliser une base de donnée, je dois faire ce qu'on me dit ^^
Avec la ligne : $noms = file_get_contents('mon_fichier.txt') , il m'affiche cela :
Array
(
[0] => ANDRE
[1] => ANDRE
[2] => ANCY
[3] => ANNE
[4] => ANNE
[5] => anes
[6] => ANCY
)
Mon fichier client.txt se compose comme cela :
03123456;ANDRE;ETS ANDRE;rue des tests;54000 NANCY;
03654321;ANNE;ETS ANNE;rue des anes;88300 neufchateau;
03111111;BERNARD;ETS BERNARD;RUE ZEGZETG;54000 NANCY;
03999999;TEST;ETS TEST;RUE TEST;54000 TESTS;
Je voudrais juste recuperer la 2e partie, c'est à dire Andre, Anne, Bernard ...
cs_kevin54000
Messages postés34Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention25 juin 2008 12 juin 2008 à 15:33
Ah effectivement ça marche !
Gros merci d'avoir pris du temps pour m'aider !
Juste une dernière question et j'arrête de t'embeter ^^ : Comment je peux faire pour n'en afficher qu'un par un ?
Par exemple je tape "an", il m'affiche André. là je met un message du style " Est-ce le bon client ? "
Si oui on passe à la suite , sinon il m'affiche Anne ( et si c'est encore non, on revient à la saisie )