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

3 réponses

Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
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)
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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:

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
0
Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
le total est bien une variable dans son exemple. Il ne faut donc pas de guillemets! Il donne l'explication de sa variable total deux lignes plus haut de sa première utilisation.
Par contre je suis d'accord sur le document.getElementById(total).value=ton_total_calcule ...
0