11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai récupéré un script pour une liste déroulante liée, ce script utilise JS que je ne maitrise pas du tout

le voici :
function changeIP(tab,idr)
{
    if(idr != "vide")
    {
    /* On compte les ip de ce réseau */
    var nbd = tab[idr][1].length;
    var form_d  = '<select name="ip" id="ip" onchange="maj(this.value);">';
    for(var j = 0;  j < nbd; j++)
    {
        form_d += '  <option value="'+ tab[idr][1][j] +'">'+ tab[idr][1][j] +'<\/option>';
    }
    form_d += '<\/select>';
    }
    else
    {
        form_d = "";
    }
    document.getElementById("blocIP").innerHTML = form_d;
}


Le code fonctionne très bien, j'aimerais juste (si possible), ne pas avoir une valeur de la liste par défaut mais une entrée genre "Sélectionnez l'IP".
Je sais le faire en html/php mais là.... Pas simple !

Merci pour votre aide.
Salut orygynz,

ton code Javascript génère directement les balises HTML necessaires à l'affichage de ton select.

Du coup si tu veux avoir un choix "Sélectionnez l'Ip" tu dois procéder comme tu le ferais en HTML simple :

function changeIP(tab,idr)
{
    if(idr != "vide")
    {
        /* On compte les ip de ce réseau */
        var nbd = tab[ idr ][1].length;
        var form_d  = '<select name="ip" id="ip" onchange="maj(this.value);">';
        form_d += '<option value="" selected="selected">Sélectionnez l\'IP</option>';
        for(var j = 0;  j < nbd; j++)
        {
            form_d += '<option value="'+ tab[ idr ][1][j] +'">'+ tab[ idr ][1][j] +'</option>';
        }
        form_d += '</select>';
    }
    else
    {
        form_d = "";
    }
    document.getElementById("blocIP").innerHTML = form_d;
}


Par contre c'est pas très propre de le faire en JS, vu que tu es en environnement PHP y'a pas moyen que tu place ce select directement avec PHP ?
Merci, ça fonctionne parfaitement !

Non, je n'ai pas le choix, c'est une liste déroulante liée à l'intérieur d'un formulaire. Et je ne pouvais pas faire ça uniquement en PHP.

A + et merci.