[PHP-JS] javascript et les boucles

Eléphant du PHP | 62 Messages

17 juil. 2007, 15:54

Bonjour,

Désoler pour le titre mais je n'est rien trouver d'autre

Ici je fait une boucle pour créer plusieurs champ et plusieurs boutons.

J’utilise une fonction javascript pour envoyer la valeur du champ abd au champ correspondons au bouton.

Mais la valeur s’inscrit toujours dans le dernier champ (le champ d5)

Voila le bout de code

<input  type="text" id="abr" name="abr" value="<?php echo $_POST['abr'];?>" 
style="border-color:blue; border-style:dotted;" onkeyup="treatquery();" /  size="23">

<?php for($i=0; $i< $rowed1; $i++){ ?>
<tr>
<script>
function f1()  {
$('d<?=$i?>').value = $('abr').value;
} </script>
<td><input type="button" id="myButton" value="OK" onclick="f1();" style="border-color:blue; border-style:dotted;" /></td>
<td>
<input type=text size="50" id="d<?=$i?>" name="d<?=$i?>" value="" style="border-color:rgb(255,102,0); border-style:dotted;"></td>
</tr> <? } ?>



Merci

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 juil. 2007, 16:40

Ton problème n'est pas reproductible (je ne peux pas copier/coller ton script et l'exécuter) donc difficile à dire.

Voici comment maximiser tes chances d'obtenir de l'aide. Premièrement, trouve s'il s'agit d'un problème lié à PHP ou un problème lié à JS. Pour cela, rien de plus facile : génère ton JS à la main. Ça marche pas ? Ton problème est lié à Javascript et donc tu devrais poster dans la section correspondante. Si cela marche, réussis-tu à reproduire le même code à partir de PHP ? Si non, le problème vient donc de ton source PHP. Un troisième cas existe, bien qu'ésotérique, où tu parviens à reproduire le même code mais celui-ci ne marche pas, mais dans 99% des cas cette méthode tombe sur un des deux premier cas.

Donc n'oublie pas, soit c'est un problème de PHP, soit JS, soit SQL, etc... Si le code que tu publies mélange tout, c'est beaucoup plus difficile à lire et à comprendre et donc tu as moins de chance de trouver de l'aide.

Eléphant du PHP | 62 Messages

17 juil. 2007, 17:48

Bonjour,

Probleme RESOLU

Bon voila j’ai le script qui fonctionne très bien voila le code, mais sans le script de calcule car très long.

Code : Tout sélectionner

<?php $ligne = array( 'ligne 1', 'ligne 2', 'ligne 3', 'ligne 4', ); ?> <script type="text/javascript"> //<![CDATA[ function $() { var elements = new Array(); for (var i=0,len=arguments.length;i<len;i++) { var element = arguments[i]; if (typeof element == 'string') { var matched = document.getElementById(element); if (matched) { elements.push(matched); } else { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); var regexp = new RegExp('(^| )'+element+'( |$)'); for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]); } if (!elements.length) elements = document.getElementsByTagName(element); if (!elements.length) { elements = new Array(); var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]); } if (!elements.length) { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]); } } else elements.push(element); } if (elements.length == 1) return elements[0]; else return elements; } //]]> </script> <script> function f0() { $('d0').value = $('abr').value; } </script> <script> function f1() { $('d1').value = $('abr').value; } </script> <script> function f2() { $('d2').value = $('abr').value; } </script> <script> function f3() { $('d3').value = $('abr').value; } </script> <script> function f4() { $('d4').value = $('abr').value; } </script> <table align="center"> <tr><td ><input type="text" id="abr" name="abr" value="Voila le code presque complet" style="border-color:blue; border-style:dotted;" onkeyup="treatquery();" / size="60"></td></tr> </table> <table border="2" align="center" width="571" height="6"> <tr><td align="center"><b><?=ACTION?></b><td align="center"><b><?=DESC?></b></td><td align="center"><b><?=QTY?></b></td><td align="center"><b><?=UNIT?></b></td><td align="center"><b><?=TAX?></b></td><td align="center"><b><?=TOTAL?></b></td></tr> <? for($i=0; $i< 5; $i++){ ?> <tr> <td><input type="button" id="myButton" value="Ajouer" onclick="f<?=$i?>();" style="border-color:blue; border-style:dotted;" /></td> <td> <input type=text size="50" id="d<?=$i?>" name="d<?=$i?>" value="" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=3 name="n<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=6 name="p<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=5 name="ta<?=$i?>" value="<?=$taxrate?>" onchange="checkNumber(this);remind(this.value);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=7 name="to<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);redoTotal();" style="border-color:rgb(255,102,255); border-style:dotted;"></td> </tr></tr> <? } ?> </table>

Merci
Modifié en dernier par Akim13 le 17 juil. 2007, 19:19, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 juil. 2007, 18:39

Je crois que tu n'as pas compris (ou lu ?) mon message. Ce que tu postes, c'est une mixture de PHP, HTML et Javascript. Il faut impérativement qu'avant d'arriver sur les forums, tu débroussailles le terrain en identifiant d'où vient le problème.

Soit PHP, soit JS.
Pour cela, rien de plus facile : génère ton JS à la main. Ça marche pas ? Ton problème est lié à Javascript et donc tu devrais poster dans la section correspondante. Si cela marche, réussis-tu à reproduire le même code à partir de PHP ? Si non, le problème vient donc de ton source PHP
Génère ton HTML/JS à la main, vois s'il fonctionne et ensuite assure-toi que le JS généré par PHP correspond bien à celui que tu as fait "à la main".

Eléphant du PHP | 62 Messages

17 juil. 2007, 19:18

Bonjour,

Même si le problème est résolu comme je l’ai écrit plu haut mais je tiendrais quand meme conte de que vous me dite pour la prochaine fois.

Sinon merci d’avoir pris le temps de répondre