fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
salut tt le monde,
j'ai un léger souci avec la fonction unset() de php sur un tableau :
j'ai une liste d'email dans un tableau , que j'affiche avec un foreach($tab as $index=> $tmp) pour avoir les index qui pointent sur une fonction del(index) en javascript.
cette dernière attribue la valeur de l'index à un champ caché "moins".
en testant $moins en php, je vois s'il est nul ou non. Si non , je fais un unset sur mon tableau de email...
Le problème, c'est que le tableau est construit via un explode sur la chaine de caractère "email1,email2,email3" passée en champ caché "email". lorsque je fais le unset sur un index autre que le dernier élément du tableau, les autres index ne correspondent plus aux mails initiaux et tout plante ( genre, il faut que je supprime 2 fois un mail : la 1ere il passe de l'index 1 à 0, puis il est vraiment effacé du tableau.... )
en plus, je fais mon foreach APRES le unset et les clés et les valeurs du tableau ne correspondent pas !!!
une idée ???
merci d'avance !
les extraits de mon code :
JAVASCRIPT :
<script>
function del(i)
{
document.form1.moins.value=i;
}
</script>
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
nan....
j'ai trouvé où ça coinçait : il y avait un décalage entre mes index de tableaux et les valeurs des clés que j'attribuait :
j'avais :
foreach($tab as $cle=>$tmp){
blabla javascript:del($cle);
}
et quand je faisais un unset avec la clé 0 (par ex):
index | clé | valeur => unset(0] | clé | valeur
0 | 0 | email0 | 1 | email1
1 | 1 | email1 | 2 | email2
2 | 2 | email2 | null | null
donc, après le unset(0), j'ai l'index 0 du tableau qui correspond à ma clé 1 ( et donc email1) et ainsi de suite. Ce qui faisait que lorsque j'appelais ma fonction JS del() sur la clé 2, je pointais en réalité sur l'index 2 du tableau ( donc null )...
j'ai résolu ce problème tt bêtement en faisant :
$i=0;
foreach($tab as $tmp){
blabla javascript:del($i);
$i++;
}