Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2010, 10h11   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 7
Points : 4
Points : 4
Par défaut récupération de variables d'un tableau dans 1 autre tableau

Bonjour,

je cherche à calculer un tarif de location pour plusieurs bus à partir de variables calculées dans un formulaire (km et jours) et de coefficients stockés dans une base de données.
mon calcul fonctionne pour 1 ligne du tableau de bus. je bloque pour stocker et calculer les variables de la base de données.


pour l'instant, je récupère la dernière ligne de ma table de bdd.
je n'arrive pas à récupérer les coefficients de toutes les lignes de ma table et à faire les calculs de tarifs correspondants.
je dois afficher tous les bus avec leur tarif et le client choisi celui qu'il veut.
c'est moi qui bloque pour l'écriture du tableau...

si quelqu'un peut m'aider...merci.

calcul_tarif.php:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?php
 
session_start();
//déclaration bdd
include("config.php");
 
if(isset($_GET['km1']) && !empty($_GET['km1']) && isset($_GET['jour1b']) && !empty($_GET['jour1b'])){
	$retour = '';
	$km = $_GET['km1'];
	$jour = $_GET['jour1b'];
	$i = 0;
	mysql_query("UPDATE categories SET nbkm='$km',nbjour='$jour'") or die ("erreur requete".mysql_error(à));
	$sql = "SELECT * FROM categories ";
	$req = mysql_query($sql) or die( mysql_error());
	$nbrRep = mysql_num_rows($req);
	if($nbrRep > 0){
		while($r = mysql_fetch_assoc($req)){
		$retour .= $r['id_cat'].'-'.$r['nbkm'].'-'.$r['nbjour'].'*'.$r['coeff1'].'*'.$r['coeff2'].'*'.$r['coeff3'].'*'.$r['coeff4'].'*'.$r['coeff5'].'*'.$r['coeff6'].'*'.$r['coeff7'].'*'.$r['coeff8'];
		$i++;
		if($i != $nbrRep)
		$retour .= '/';
		}
		echo $retour;
	}else
		echo false;
}else
	echo false;
?>
le javascript :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
function AJAX2(url){
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	xhr_object.open("GET", url, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4){
		return xhr_object.responseText;
	}
	else return(false);
} 
 
function CalculateTarif(){
 
			var km1=document.forms['the_form'].elements['result'].value
			var jour1b=document.forms['the_form'].elements['jour1b'].value
			var rep;
			var tarif;
			var tmp;
			if(!(rep = AJAX2('calcul_tarif.php?km1='+km1+'&jour1b='+jour1b))){
				alert('Erreur requête AJAX !');
			}else{
			rep = rep.split('/');
			for(var i = 0 ; i < rep.length ; i++){
			tmp = rep[i].split('*');
			if(tmp[0] != '')
			t = km1*jour1b*tmp[2];
			}
			e = parseInt(t);
			return e;
			}
 
 
		}
et le formulaire the_form (result et jour1b sont bien alimentés plus haut dans le formulaire):
Code :
1
2
3
4
 
<td><div align="right">Trouver un bus  :</div></td>
		<td><input	type="button" value="bus" onClick="tarif.value = CalculateTarif()"/>
			<input name="tarif" id="tarif" value="" size="5"/></td>
deneb92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 10h17   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Tu utilises la methode synchrone dans la fonction AJAX2 donc :

Code :
1
2
3
4
5
6
7
8
9
10
11
function AJAX2(url){
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	xhr_object.open("GET", url, false);
	xhr_object.send(null);
	return xhr_object.responseText;
}
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 10h42   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 7
Points : 4
Points : 4
j'ai déjà mis cette fonction juste au-dessus de la fonction CalculateTarif.
c'est au niveau de la syntaxe que je bloque.
je récupère km et jour calculés plus haut dans mon formulaire.
j'appelle ma fonction js qui appelle un fichier php qui met à jour ma bdd puis sélectionne les coefficients de toutes mes lignes (des minibus) de la bdd.
et là, normalement, je récupère les coefficients de chaque ligne de bus pour calculer un tarif pour chaque ligne de bus. que je veux afficher dans un tableau dans mon formulaire.
et je suis perdue...
je récupère la dernière ligne de mon tableau.
deneb92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h03   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Oui mais tu appelles la fonction AJAX2 qui est faux dans la fonction CalculateTarif().
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h14   #5
Invité de passage
 
Inscription : décembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 7
Points : 4
Points : 4
ok, je n'avais pas vu la dernière ligne. j'ai modifié.

mais mon gros problème est dans la syntaxe :
j'en suis là : je récupère la dernière ligne de coeff. je ne sais pas comment récupérer les coeffs, faire les calculs et les afficher tous dans le tableau du formulaire. je me mélange les pinceaux entre le tableau des coeff, le tableau avec le calul et le tableau d'affichage...
deneb92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h21   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Je ne te comprend pas là?
Citation:
onClick="tarif.value = CalculateTarif()"
Code html :
onclick="document.getElementById('tarif').value = CalculateTarif()"
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 13h19   #7
Invité de passage
 
Inscription : décembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 7
Points : 4
Points : 4
je calcule km et nbjour sur un formulaire.
j'appelle une fonction js qui appelle un fichier php qui met km et nbjour dans ma table de minibus. Le php sélectionne cette table et récupère les coefficients de chaque minibus.
c'est une table de 5 minibus avec des coefficients différents selon le nb de jour et de km.
je retourne au js : je récupère les lignes de coeff et là je dois faire des calculs de tarifs pour chaque ligne de bus que j'affiche dans un tableau dans mon formulaire.
et c'est là où je me perds : j'ai mes coefficients mais je dois les relire dans le js pour calculer ligne par ligne (de minibus) les tarifs de chaque minibus.
je ne sais pas comment traduire ce stockage de coeff et ce calcul de tarif.
et ensuite afficher tarif et minibus dans un tableau de mon formulaire.
deneb92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web