joduak
Messages postés194Date d'inscriptionlundi 11 juillet 2005StatutMembreDernière intervention13 avril 2007
-
11 août 2005 à 17:39
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 2007
-
12 août 2005 à 10:52
Salut à vous!
Alors je pésente la situation...
J'ai un formulaire et lorsque le client a fini sa saisie dans un
textbox (onblur), par exemple un nombre de personne, si la saisie est
correcte, on poursuit sinon un message d'erreur s'affiche sur la même
page.
Au départ je voulais enchainer avec un script php mais pb de
client-serveur, donc si je transcris mon script php en script JS ça
devrait être sans pb n'est ce pas?
Ce script JS calcule en fonction du nombre de personne, différentes possibilités de quantité donc algo de maths koi.
Le script sort donc un tableau avec différentes valeurs que devront
être proposées au client dans un menu déroulant qui se situe sur la
même page que le text box.
Si ça vous semble bon, dites juste oui l'histoire que vs perdiez pas trop de temps.
Mais t'échappes pas à javascript pour autant bikoz onBlur. Tu peux donc
depuis js enchainer en php en appelant une page php et en lui passant
en get par exple l'entrée du client. XMLHTTPRequest par exple est un
bon exple: saisie coté js, traitement coté php
(http://www.webpasties.com/xmlHttpRequest/index.html est la page que je
conseille, mais certains la boude... toi qui vois)
joduak
Messages postés194Date d'inscriptionlundi 11 juillet 2005StatutMembreDernière intervention13 avril 2007 11 août 2005 à 22:24
REMARQUE 1: ouais merci de ta réponse malik, mais est ce que si je fais que du javascript ça marche?
parce que si j'exploite le onblur de js, en admettant que la saisie du
client est correcte, je peux lancer un script js qui me calcule les
différentes valeurs à proposer du menu déroulant qui se trouve sur la
même page (et cela sans recharger la page), nan?
REMARQUE 2:Parce que recharger les pages à chaque fois c relou pr le
confort de l'utilisateur et d'ailleurs je sais po trop comment on
fait...
c'est pas un truc du style j'ai mon formulaire sur page1.php avec mes 3
champs à saisir, puis une fois qu'il a saisie son truc et que c
correcte ça bascule grâce à js à page2.php avec les mêmes 3 champs et
en plus le menu déroulant que je souhaite?
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 12 août 2005 à 09:59
1 : Tu peux remplir une liste déroulante en js, mais perso je trouve ça plus simple en php.
2 : Tu peux tout faire sur la même page, en n'affichant ta liste déroulante que si une valeur a été postée dans tes 3 champs...
En fait, ça dépend un peu de ton calcul, s'il est complexe, ce sera peut-être moins galère de le faire en php...
joduak
Messages postés194Date d'inscriptionlundi 11 juillet 2005StatutMembreDernière intervention13 avril 2007 12 août 2005 à 10:36
Ok mais pour un gros débutant comme moi ça m'a plutot l'air chaud la fonction xmlhttprequest lol.
Je précise mon pb:
J'ai ma fonction php qui me calcule mon nombre de voiture en fonction de ce que l'utilisateur a tapé dans la text box 'nbre de personnes'. J'aimerai que cette fonction suivante php se lance dès que le client a tapé le nbre de personne, et ce sans rafraichir la page. Est ce possible? Comment fait on sachant que la fonction php est lancée dans du javascript?
Merci de vos conseils.
function nbre_voiture($nbre_personne,&$affichage_voiture,&$i) {
$requete=mysql_query("SELECT immatriculation FROM voiture
ORDER BY immatriculation");
$nbre_voiture_total = mysql_numrows($requete);
//Les voitures accueillent jusqu'à 3 places.
$nbre_place=3;
$nbre_personne_max=$nbre_voiture_total*$nbre_place;
if($nbre_personne > $nbre_personne_max) {
echo "Nous ne pouvons accéder à votre demande !";
echo "
Nombre de personne trop élevé!! ";
}
else {
$nbre_personne=$nbre_personne/2;
$tab = explode('.', $nbre_personne);
$affichage_voiture[0]=$tab[0];
$compteur=0;
$i=1;
//1er cas : Si $nre_personne/2 est un nombre entier alors $tab[0]=$nbre_personne
if($tab[0] == $nbre_personne) {
while($nbre_personne >= $nbre_place) {
$nbre_personne=$nbre_personne-$nbre_place;
$affichage_voiture[$i]=$affichage_voiture[$i-1]-1;
$i++;
}
}
//2eme cas : Sinon c'est un nbre à virgule
else {
while($tab[0] > $nbre_place) {
$tab[0]=$tab[0]-$nbre_place;
$affichage_voiture[$i]=$affichage_voiture[$i-1]-1;
$i++;
}
}
sort($affichage_voiture);
for($t=0;$t<$i;$t++) {
echo "
Nombre de voitures proposées : $affichage_voiture[$t]";
}
}
}
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 12 août 2005 à 10:52
Une solution possible :
Utiliser ta fonction au chargement de la page pour remplir une variable javascript de type tableau et ensuite, en fonction du nb de personne saisi, utiliser le tableau pour remplir ta liste déroulante
Sinon, en fonction de la saisie, affciher ou cacher certaines lignes de la liste.
Au fait, pourquoi n'utilises-tu pas plutôt aussi une liste déroulante pour choisir le nb personnes ?