11548 sujets

JavaScript, DOM et API Web HTML5

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. si quelqu'un peut m'aider...merci.

calcul_tarif.php:

<?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 :

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):

<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>

[/i]
Modifié par deneb (16 Dec 2010 - 15:33)