11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai un petit soucis avec javascript. Il faut dire que je pratique très très peu ce langage, juste par ci par là pour améliorer certaine fonction. En fait, pour simplifier, il s'agit de deux formulaires. Ou plutôt cinq, je m'explique :

- Une ligne avec une liste de plusieurs produits.
- Une ligne avec quatres listes, chaque liste représentant les dix caractères numérique pour former une taxe, genre : [ 1 ] [ 9 ] , [ 6 ] [ 0 ] %

Ce que je souhaite, c'est que lorsque l'on sélectionne un produit, la taxe se remplie automatiquement (les quatre formulaires donc) en allant chercher dans une page ajax (qui, elle, fonctionne). Lorsque je clique sur un produit, c'est bon, ça fonctionne, la taxe se modifie instantanément. Mais lorsque je sélectionne une autre famille, ça ne modifie plus rien. Comme si le onChange était inactif.

La page html :

	<select name="id_family" id="id_family" onchange="select_change_family(this.value)">
		<option value="0" selected="selected">Aucune famille de produits</option>
		<option value="2">Lol</option>
		<option value="1">Test</option>
	</select>
	<select name="product_tax_1" id="product_tax">
		<option value="0" selected="selected">0</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
		<option value="6">6</option>
		<option value="7">7</option>
		<option value="8">8</option>
		<option value="9">9</option>
	</select>
	<select name="product_tax_2" id="product_tax_2">
		<option value="0" selected="selected">0</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
		<option value="6">6</option>
		<option value="7">7</option>
		<option value="8">8</option>
		<option value="9">9</option>
	</select>
	,
	<select name="product_tax_3" id="product_tax_3">
		<option value="0" selected="selected">0</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
		<option value="6">6</option>
		<option value="7">7</option>
		<option value="8">8</option>
		<option value="9">9</option>
	</select>
	<select name="product_tax_4" id="product_tax_4">
		<option value="0" selected="selected">0</option>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
		<option value="5">5</option>
		<option value="6">6</option>
		<option value="7">7</option>
		<option value="8">8</option>
		<option value="9">9</option>
	</select>


La page javascript :

function select_change_family(id_family) {
	document.getElementById('product_tax').value = ajax_execute('autocompletion=id_family&tax=1&value=' + id_family);
	document.getElementById('product_tax_2').value = ajax_execute('autocompletion=id_family&tax=2&value=' + id_family);
	document.getElementById('product_tax_3').value = ajax_execute('autocompletion=id_family&tax=3&value=' + id_family);
	document.getElementById('product_tax_4').value = ajax_execute('autocompletion=id_family&tax=4&value=' + id_family);
	return(false);
}


Je ne vous transmets pas la page ajax qui est valide. Elle renvoie les quatre chiffres de la taxe.

Quelqu'un a t-il une idée ?
Merci beaucoup d'avance,
Gaylord.P.
Modifié par Gaylord.P (03 Jan 2010 - 12:32)
Bonsoir,

Tu es sûr que la valeur retourner par ajax_execute est bonne/change ? Pars que la page peut s'être mis en cache ou, si la requête est asynchrone le résultat peut être inattendu.
Mince ... au temps pour moi ! Voyant ta réponse, j'ai vérifié le fichier ajax qui était bien correct. Le problème venait en fait de MySQL (là où les données sont enregistrées) : il y avait un double enregistrement, datant des premiers tests infructueux.

Le problème est donc résolu et, pour ceux qui souhaitent réaliser un script similaire, les deux portions de code présentées sont valides.

Merci,
Gaylord.P. Smiley smile