Ajax problèmes
Résolu
Autumn`Tears
Messages postés
1054
Date d'inscription
Statut
Membre
Dernière intervention
-
Archeus01 Messages postés 1572 Date d'inscription Statut Membre Dernière intervention -
Archeus01 Messages postés 1572 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une ligne déjà créée contenant un descriptif, une liste avec des quantités, un prix unitaire, une remise, et le prix total de cette ligne.
Lorsque je change une valeur sur la quantité le prix ou la remise, il doit automatiquement recalculer le prix final.
Le problème ne vient pas de mes calculs mais plutôt du champ du prix final qui n'est plus reconnu.
Je vous poste la source :
Fonction Javascript (simplifiée) :
function calc(idPage,champs) {
/*calcul*/
/* définition du nom de mon champ */
var total='total'+parseInt(idPage);
/* Modification du champ avec le même identifiant que mon input */
document.getElementById(total).innerHTML=ajaxRequest('total.php?idPage='+idPage+'&value='+value);
Après, si je fais un alert(document.form[total]) il va me sortir "undefined" alors que mon input a toujours le même nom, bref, la source de ma ligne :
<form name='form' method='post' action=''>
<tr><td><div id='desc1'><textarea name='descriptif1' rows='1' cols='10'><?php echo $val;?></textarea></div></td>
<td><div id='qte1'><select name='quantite1' onChange='calc(1,2)'>
<option value='0'>0</option>
...</select></div>
</td>
<td><div id='prix1'><input type='text' name='prix1' value='<?php echo $prix;?>' size='8' onKeyup='calc(1,2)'></div></td>
<td><div id='remise1'><input type='text' name='remise1' value='<?php echo $remise;?>' size='8' onKeyup='calc(1,2)'></div></td>
<td><div id='total1'><input type='text' name='total1' value='<?php echo $total;?>' size='8' readonly></div></td></tr>
Page qui modifie ma valeur (total.php) :
<?php
header('Content-type: text/html; charset=latin1');
?>
<input type='text' name='total<?php echo $_GET['idPage'];?>' value='<?php echo $_GET['value'];?>' size='8' readonly>
Si vous avez une idée d'où pourrait venir le problème, je vous en remercie !
Si vous avez besoin que je sois plus explicite, je tenterai tant bien que mal de l'être plus !
J'ai une ligne déjà créée contenant un descriptif, une liste avec des quantités, un prix unitaire, une remise, et le prix total de cette ligne.
Lorsque je change une valeur sur la quantité le prix ou la remise, il doit automatiquement recalculer le prix final.
Le problème ne vient pas de mes calculs mais plutôt du champ du prix final qui n'est plus reconnu.
Je vous poste la source :
Fonction Javascript (simplifiée) :
function calc(idPage,champs) {
/*calcul*/
/* définition du nom de mon champ */
var total='total'+parseInt(idPage);
/* Modification du champ avec le même identifiant que mon input */
document.getElementById(total).innerHTML=ajaxRequest('total.php?idPage='+idPage+'&value='+value);
Après, si je fais un alert(document.form[total]) il va me sortir "undefined" alors que mon input a toujours le même nom, bref, la source de ma ligne :
<form name='form' method='post' action=''>
<tr><td><div id='desc1'><textarea name='descriptif1' rows='1' cols='10'><?php echo $val;?></textarea></div></td>
<td><div id='qte1'><select name='quantite1' onChange='calc(1,2)'>
<option value='0'>0</option>
...</select></div>
</td>
<td><div id='prix1'><input type='text' name='prix1' value='<?php echo $prix;?>' size='8' onKeyup='calc(1,2)'></div></td>
<td><div id='remise1'><input type='text' name='remise1' value='<?php echo $remise;?>' size='8' onKeyup='calc(1,2)'></div></td>
<td><div id='total1'><input type='text' name='total1' value='<?php echo $total;?>' size='8' readonly></div></td></tr>
Page qui modifie ma valeur (total.php) :
<?php
header('Content-type: text/html; charset=latin1');
?>
<input type='text' name='total<?php echo $_GET['idPage'];?>' value='<?php echo $_GET['value'];?>' size='8' readonly>
Si vous avez une idée d'où pourrait venir le problème, je vous en remercie !
Si vous avez besoin que je sois plus explicite, je tenterai tant bien que mal de l'être plus !
3 réponses
QUe vaut value dans ton javascript document.getElementById(total).innerHTML=ajaxRequest('total.php?idPage='+idPage+'&value='+value); ? Il devrait valoir un truc du genre <input type='text' name='totalX' value='XXX_CALCULE' size='8' readonly />
Ensuite, pourquoi changer le inerhtml des div et pa la value des input? Sa serait plus simple quand même! (et en plus, je pense que c'est ce que tu veux faire)
Ensuite, pourquoi changer le inerhtml des div et pa la value des input? Sa serait plus simple quand même! (et en plus, je pense que c'est ce que tu veux faire)
document.getElementById(total).innerHTML=ajaxRequest('total.php?idPage='+idPage+'&value='+value);
et le div ton input:
<div id='total1'><input type='text' name='total1' value='<?php echo $total;?>' size='8' readonly></div>
tu vois bien que l'id n'est pas bon
il faut:
si je fais un alert(document.form[total]) =>
de plus je ne vois pas trop ton principe, tu fais par ajax appel à un script php qui te renvoie la valeur que tu lui passes en argument value='<?php echo $_GET['value'];?>'
apparemment tu fais un calcul par javascript, alors il suffit que dans ta fonction calc(1,2) tu rajoutes
et le div ton input:
<div id='total1'><input type='text' name='total1' value='<?php echo $total;?>' size='8' readonly></div>
tu vois bien que l'id n'est pas bon
il faut:
document.getElementById('total1')....et entre guillemets simples ou doubles
si je fais un alert(document.form[total]) =>
alert(document.form.total.value)
de plus je ne vois pas trop ton principe, tu fais par ajax appel à un script php qui te renvoie la valeur que tu lui passes en argument value='<?php echo $_GET['value'];?>'
apparemment tu fais un calcul par javascript, alors il suffit que dans ta fonction calc(1,2) tu rajoutes
document.getElementById('total1').value=ton_total_calcule