Voici l'historique de notre précédente jointe en fichier historique.txt conversation qui a porté sur le deloveloppement du de l'agence de voyage TRANS BONY VOYAGES, tu m'as déjà fourni le code que j'utilise, je veux que tu t'en souvienne avec présicion car j'aimerai qu'on apporte des amelioration. Voici le dernier code fourni pour la page reservation.php, seulement quand quand je sélectionne la date et la ville de depart les voyages n'apparraissent pas seulement le message d'erreur "Erreur: Failed to fetch" alors que le webservice n'a pas de problème, ça passe très très bien avec postman, ça passe très bien aussi avec "https://wstransbony.zuaconnexion.com/ws/testvoyages.php?" avec les paramètres préfixés "{"date":"2025-08-19","depart":"Pointe-Noire"}, alors fais en sorte que les voyages apparraissent avec "'https://wstransbony.zuaconnexion.com/ws/voyages.php'" Maintenant pour la petite popup je veux que les boutons " Je refuse" et "J'accepte le contrat" soit visible même sans scroller tout le texte du contrat (parce que le client peut être un non habitué de la technologie et ne sait pas qu'il faut scroller et ne sait pas comment avancer, l'idée est de permettre que n'importe qui arrive à réserver sans l'aide de quelqu'un d'autre), Donc que le client ait la possibilité de scroller pour lire tout le contrat mais en voyant clairement les boutons sur lesquels il peut déjà appuyer même s'il ne lit pas tout le contrat. Change le style des zone de saisie des champs de saisie parce qu'avec l'arrière plan blanc les zone de saisie ne sont pas visible et les écrits aussi, donc met un contour sur les zones de saisies avec un fond distinct afin d'être visible et remarquable et aussi à la selection de la date de voyage que les écrits soient en noir afin que le client voit la date prise et aussi à la saisi des informations dans le formulaire quand le client saisit le nom, prénom, téléphone et autre et que cela soit ecrit en noir aussi, ou encore je demande que tu changes le backgroud des si tu n'arrives pas à change le style ou la couleur des champs Après avoir sélectionner le départ et la date de voyage pour afficher les voyages, consomme mon webservice qui renvoit un json des voyages disponibles à l'adresse "https://wstransbony.zuaconnexion.com/ws/voyages.php" avec des paramètres sélectionnés par exemple ""{"date":"2025-08-19","depart":"Pointe-Noire"}" en utilisant la methode POST. S'il y a des voyages disponibles tu affiches les voyages en fonction de cela sinon tu affiches un message comme "Désolé aucun voyage n'est disponible en ligne en ce jour (date choisi) au départ de (depart choisi) Le site d'embarquement du voyage doit être écrit en gras avec un soulignement jaune pour attirer directement l'attention du client car il ne peut être embarqué que dans ce site, pas un autre Quand on sélectionne la destionation on doit alimenter la liste site d'arrivée en consommant mon webservice qui renvoit un json des sites d'arrivée du de la destionation à l'adresse "https://wstransbony.zuaconnexion.com/ws/sitesArrivees.php" en utilisant le paramètre du site d'arrivée sélectionné par exemple '{"destination":"BRAZZAVILLE"}' (destination : valeur sélectionnée dans la liste déroulante du site d'arrivée) toujours en methode POST Après avoir choisi la destination et le type de billet pour afficher la tarification au qui suit, il faut consommer mon webservice qui renvoit un json de la tarification disponibles à l'adresse "https://wstransbony.zuaconnexion.com/ws/tarifsOnline.php", en utilisant le paramètre du site d'arrivée sélectionné par exemple '{"depart":"OUESSO","arrivee":"BRAZZAVILLE"}' (depart : valeur sélectionnée dans la liste déroulante du départ, arrivee : valeur sélectionnée dans la liste déroulante du site d'arrivée) toujours en methode POST. C'est pour avoir le tarif correspondant au depart sélectionner et la destination choisie, le type de billet est à "Adulte" on prend le montant dans la rubrique "Prix" si le type de billet choisi est enfant on prend le montant "PrixEnfant" et si le type est "Petit enfant" on prend le montant situé dans "PrixAssurance". Déclare en suite une variable ou constant qui contiendra le supplement à payer pour le service en ligne par exemple "1.000 F CFA" qui sera ajouté au prix du billet et de là tu affiches prix du billet, Frais de service (valeur de la variable) et total à payer = Prix du billet + Frais du service. En même temps en contruit la structure des fichiers json du profil voyageur Pour créer des ID en entier long, j'utilise un algo de Ma fonction DonneID qui est une fonction windev, tu va la convertir en php pour avoir un ID compatible à mon système PROCÉDURE DonneID() nMataille est un entier = Taille(gnMonID) nMataille2 est un entier = nMataille nMataille -= 1 SI nMataille = 0 ALORS nMataille = 1 FIN InitHasard() nNombreAléatoire est un entier nNombreAléatoire = Hasard(0, 99) sMonID est une chaîne sMonID = DateDuJour()[[3 À 8]] + Maintenant() + gnMonID[[nMataille À nMataille2]] + nNombreAléatoire + Maintenant()[[8 À 8]] RENVOYER sMonID un json Profil qui sera dynamiquement comme suit : "{ "IDPROFILE":250818133954777537, "IDDEPARTEMENTS":0, "Login":"", "PM":"", "Telephone":"066719170", "RecoveryPassword":"", "Nom":"ROLDE", "Prenom":"Tsouari", "Type":1, "Archiver":false, "Departement":"", "Localite":"", "Quartier":"", "Num":"0", "Rue":"", "Adresse":"", "GPSLatitude":"", "GPSLongitude":"", "ProfileOk":false, "Sexe":true, "IDTemp":"250818133954777537", "genreNormal":0, "IDARRONDISSEMENTS":0, "IDAGENCES":1, "Date":"2025-08-18", "Heure":"13:39:00.000", "SuggererZZ":false, "Numero":"250818133954777537", "PEM":false, "PEP":false, "PPC":"", "RecevoirSMS":true, "DateHeureCree":"2025-08-18T13:39:54.772", "DateHeureModif":"2025-08-18T13:39:54.772", "AdMac":"00:e9:3a:10:8a:04", "ASynchroniser":"00:e9:3a:10:8a:04", "Autre1":"", "Autre2":"", "Autre3":"" }" Dont : "IDPROFILE" = Valeur de la fonction DonneID(), "Telephone" = le numero de téléphone saisie dans le formulaire, "Nom" = le nom saisi dans le formulaire, "Prenom" = me prénom saisi dans le formulaire, "Heure" = l'heure d'achat du billet, "IDTemp" = "IDPROFILE" , "IDAGENCES" = 1, "Date" = date du jour, "Numero" = "IDPROFILE", "DateHeureCree" = dateheure au moment de l'achat, "DateHeureModif" = dateheure au moment de l'achat, "AdMac" = "10:e9:3a:10:8a:04" , "ASynchroniser" = "10:e9:3a:10:8a:04", le reste des champs du json Profil gardent les valeurs par defaut contenu dans l'exemple. Le json Profil doit être envoyé au webservice https://wstransbony.zuaconnexion.com/ws/voyageurp1.php? en methode post un json Voyageur qui sera dynamiquement comme suit : { "IDVOYAGEURS":250818133955517671, "IDPROFILVendeur":7, "Date":"2025-08-18", "Heure":"13:39:00.000", "IDVOYAGES":250818074417647874, "IDPROFILE":250818133954777537, "IDAGENCES":1, "Depart":"Pointe-noire", "Arrivee":"Brazzaville", "Type":1, "Qte":1, "Total":12000, "MontantEnvoye":12000, "Valider":true, "Voyage":"Pointe-noire - Brazzaville", "Agence":"", "PrixUnit":12000, "IDTemp":"2025081813395549", "Archiver":false, "Regler":false, "ArretReglement":false, "DateL":"2025-08-18", "HeureL":"13:39:00.000", "Nom":"", "Sexe":false, "Latitude":"Guichet", "Longitude":"", "Categorie":1, "deplacement":"", "IDVOYAGESTransfere":0, "AnnulerV":false, "NumeroTicket":"081906105549 - 1", "IDDEPART":2, "IDARRIVEE":1, "Arret":"LA FRONTIERE", "Autre1":"Present(e)", "Autre2":"Pointe-noire", "Autre3":"", "Autre4":"", "Autre5":"", "IDPROFILEPenalite":0, "PositionArrivee":1, "Fidele":false, "DateHeureCree":"2025-08-18T13:39:55.511", "DateHeureModif":"2025-08-18T13:39:55.511", "AdMac":"00:e9:3a:10:8a:04", "ASynchroniser":"00:e9:3a:10:8a:04", "Autre6":"", "Autre7":"", "NbreImpression":1, "RaisonDoubleImpression":"", "NbreModif":0, "RaisonDoubleModification":"", "NumeroTalon":"", "ADesColis":false, "TelephoneVoyageur":"", "NomPrenomClient":"", "Telephone":"" } Dont : "IDVOYAGEURS" = Valeur de la fonction DonneID(), "IDPROFILVendeur" = 7, "Date" = date du jour, "Heure" = l'heure d'achat du billet, "IDVOYAGES" = valeur du champs IDVOYAGES du voyage séléctionné, "IDPROFILE" = même valeur "IDPROFILE" du fichier json Profil, "IDAGENCES" = 1, "Depart" valeur champs Depart du voyage séléctionné, "Arrivee" = valeur sélectionné sur la liste déroulante arrivée, "Type" = valeur du type de billet sélectionné, si le type est adulte la valeur est 1, si cest enfant la valeur est 2 sinon 3, "Qte" = 1, "Total" = montant du billet (en fonction du type de billet selon que la tarification est renvoyé par le webservice) , "MontantEnvoye" = montant à payer, c'est-à-dire le montant du billet et les frais du service, "PrixUnit" = "Total" , "Valider" = false, "Voyage" = valeur du champs Description du voyage sélectionné , "DateL":" = date du jour, "IDTemp" = valeur de "IDVOYAGEURS", "NumeroTicket" = "" , "IDDEPART" = 1, "IDARRIVEE" = 2, "Arret" = valeur sélectionné dans la liste déroulante du site d'arrivée, "DateHeureCree" = dateheure au moment de l'achat, "DateHeureModif" = dateheure au moment de l'achat, "AdMac" = "10:e9:3a:10:8a:04" , "ASynchroniser" = "10:e9:3a:10:8a:04", "NbreImpression":0, le reste des champs du json Profil gardent les valeurs par defaut contenu dans l'exemple. Le json Profil doit être envoyé au webservice https://wstransbony.zuaconnexion.com/ws/voyageurp2.php? en methode post Une fois le json Profil envoyé avec succès, enregistre la valeur "IDPROFILE" comme cookie persistant du coté du client, ceci permettra au client d'acceder à la liste de ces billets achetés, cette valeur "IDPROFILE" servira d'identifiant du client, il n'aura donc pas besoin de se connecter avec un compte et mot de passe pour acceder à son espace billets Le json Voyageur est envoyé si et seulement si le json Profil a été envoyé avec succès en appuyant sur l'un des logo de paiement (MTN ou Airtel Money) Si le bouton de paiement appuyé est MTN MoMo le champs "Autre6": du json voyageur = "mtn" sinon si c'est Artel Money "Autre6": = airtel Quand je quitte une etape à une autre si c'est possible il faut faut scroller le site vers le haut pour voir les champs de debut en haut de l'étape. Je joins un fichier ws.text contenant la structure de mes webservices afin que tu vois comment le consommer parfaitement avec les paramètres requis. Stp commente chaque etape du code pour me permettre de comprendre le code et debogguer si possible