[JS] problème de variable
Résolu
okuni
Messages postés
1325
Statut
Membre
-
okuni Messages postés 1325 Statut Membre -
okuni Messages postés 1325 Statut Membre -
Bonjour,
J'ai modifié un script JS trouvé sur le net. Il fonctionne sauf sur un point.
Le principe est d'ajouté pour chaque tableau 2 champs.
Le problème réside dans la variable count_$i
où $i est l'identification du tableau (se trouvant dans un formulaire, je l'utilise pour savoir d'où viens l'information)
en vérifiant le code source j'ai bien count_0 = 0 et count_1 = 0
Ce qui est normal mais bizarrement, lorsque je clique sur le lien pour ajouter un champ, peu importe sur quel lien je clique, il ne fait pas la différence entre count_0 et count_1.
Donc problème car les nom des champs ne seront pas en continu à partir de 0.
exemple :
Si je clique 1 fois sur le premier, une fois sur le second et encore une fois sur le premier, j'obtient la suite 1, 2, 3. Donc pour le premier tableau, l'id 2 n'existe pas. J'aurai du obtenir 1, 1, 2.
Voici le code :
Pour tester, voici le lien : http://www.blizer.net/test.html
Merci d'avance.
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
J'ai modifié un script JS trouvé sur le net. Il fonctionne sauf sur un point.
Le principe est d'ajouté pour chaque tableau 2 champs.
Le problème réside dans la variable count_$i
où $i est l'identification du tableau (se trouvant dans un formulaire, je l'utilise pour savoir d'où viens l'information)
en vérifiant le code source j'ai bien count_0 = 0 et count_1 = 0
Ce qui est normal mais bizarrement, lorsque je clique sur le lien pour ajouter un champ, peu importe sur quel lien je clique, il ne fait pas la différence entre count_0 et count_1.
Donc problème car les nom des champs ne seront pas en continu à partir de 0.
exemple :
Si je clique 1 fois sur le premier, une fois sur le second et encore une fois sur le premier, j'obtient la suite 1, 2, 3. Donc pour le premier tableau, l'id 2 n'existe pas. J'aurai du obtenir 1, 1, 2.
Voici le code :
<?php
for ($i = 0; $i <= 1; $i++)
{
?>
<script language="javascript" type="text/javascript">
//Commence à compter à 0
var count_<?php echo $i;?> = 0;
function one_more_ligne (i) {
count_<?php echo $i;?>++;
var tr = document.createElement("tr");
var td_1 = document.createElement("td");
var td_2 = document.createElement("td");
var inp1 = document.createElement("input");
var inp2 = document.createElement("input");
inp1.type = "text";
inp2.type = "text";
inp1.name = "lien["+i+"]["+count_<?php echo $i;?>+"]";
inp1.id = "lien["+i+"]["+count_<?php echo $i;?>+"]";
inp2.name = "commentaire["+i+"]["+count_<?php echo $i;?>+"]";
inp2.id = "commentaire["+i+"]["+count_<?php echo $i;?>+"]";
td_1.appendChild(inp1);
td_2.appendChild(inp2);
tr.appendChild(td_1);
tr.appendChild(td_2);
byId("table_lien_"+i+"").getElementsByTagName('tbody')[0].appendChild(tr);
}
function byId(elmId){
var elm = document.getElementById(elmId);
if(elm==null)
elm = document.getElementsByName(elmId)[0];
//Affiche une alerte pour voir directement le code HTML
//alert(elm.innerHTML);
return elm;
}
</script>
<table id="table_lien_<?php echo $i;?>" name="table_lien_<?php echo $i;?>">
<tbody>
<tr>
<td>Lien</td>
<td>Commentaire</td>
</tr>
<tr>
<td colspan="2" align="center"><a href="#" onclick="one_more_ligne(<?php echo $i;?>);">[+] Ajouter une ligne</a></td>
</tr>
<tr>
<td><input type="text" id="lien[<?php echo $i;?>][0]" name="lien[<?php echo $i;?>][0]" /></td>
<td><input type="text" id="commentaire[<?php echo $i;?>][0]" name="commentaire[<?php echo $i;?>][0]" /></td>
</tr>
</tbody>
</table>
<?php
}
?>
Pour tester, voici le lien : http://www.blizer.net/test.html
Merci d'avance.
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
A voir également:
- [JS] problème de variable
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable d'environnement temp - Forum Word
- Vérifiez la variable d'environnement TEMP. QUE FAIRE ????? ✓ - Forum Microsoft Office
- Vba range avec variable ✓ - Forum VB / VBA
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
1 réponse
Bonjour
Normal, ta fonction one_more_ligne est définie deux fois avec exactement le même nom ! Tes clics appelle toujours la première ou la seconde, je ne sais pas, et travaillent donc toujours avec count_0 ou count_1, l'autre variable n'est pas utilisée.
Je n'ai pas suivi le détail de ce que tu cherches à faire, mais il me semble que ta fonction devrait être définie en dehors du 'for' et qu'au lieu d'avoir des variables count_0,count_1, etc... tu devrais avoir un tableau
Normal, ta fonction one_more_ligne est définie deux fois avec exactement le même nom ! Tes clics appelle toujours la première ou la seconde, je ne sais pas, et travaillent donc toujours avec count_0 ou count_1, l'autre variable n'est pas utilisée.
Je n'ai pas suivi le détail de ce que tu cherches à faire, mais il me semble que ta fonction devrait être définie en dehors du 'for' et qu'au lieu d'avoir des variables count_0,count_1, etc... tu devrais avoir un tableau
okuni
Messages postés
1325
Statut
Membre
126
Ok merci pour ton aide :D