[Compte supprime]
Invité n'ayant pas de compte PHPfrance
22 mars 2013, 12:50
L'explication est très simple...
Quand je sélectionne un réseau, automatiquement, la liste déroulante des IP apparaît ! Bien entendu, cette liste correspond au réseau sélectionné. Au moment du choix du réseau, le tableau "tab" est envoyé avec le numéro de réseau.
onchange="changeIP(tab,this.value);">
, this.value, c'est
value="<?php echo $value['reseau']['id']; ?>"
Une fois qu'on à ça, on arrive sur le fichier changeIP.js
[javascript]function changeIP(tab,ips)
{
console.info(tab);
console.info(ips);
if(ips != "vide")
{
/* On compte les ip de ce réseau */
var nbd = tab[ips][0].length;
var form_d = '<select name="ip" id="ip" style="text-align:center;" onchange="maj(this.value);">';
form_d += '<option value="" selected="selected">- - - Selectionnez l\'IP - - -</option>';
for(var j = 0; j < nbd; j++)
{
form_d += '<option value="'+ tab.ips[j] +'">'+ tab.ips[j] +'</option>\n';
}
form_d += '</select>';
}
else
{
form_d = "";
}
document.getElementById("blocIP").innerHTML = form_d;
}[/javascript]
Il contrôle ensuite que this.value, à savoir ips au niveau du code js n'est pas vide.
On arrive ensuite au message d'erreur sur la ligne :
[javascript]var nbd = tab[ips][0].length;[/javascript]
C'est encore une fois très facile à comprendre... Je suis même déçu que tu me poses cette question !

JS doit compter le nombre de ligne du tableau en fonction du numéro de réseau. Tout bêtement, il va compter le nombre d'IP du réseau sélectionné pour pouvoir se servir de la boucle For étant donné qu'on a pas voulu créer un foreach en JS (Et après, on s'étonne que je préfère le PHP

).
Le message d'erreur nous indique qu'il ne comprend pas tab[ips][0], en fait, comme pour la partie Array dans PHP, on ne doit pas être au bon niveau du tableau, sous-tableau, partie inférieure en dessous du sous-tableau... Et c'est là le souci, je ne connais pas ce bout de code car je ne vois pas comment tab[ips] peut vouloir dire "Sélectionne les IP dans tab en fonction d'ips" !
