IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

erreur javascript pour modifier select avec tableau PHP


Sujet :

JavaScript

Vue hybride

omdafer erreur javascript pour... 17/03/2008, 21h11
omdafer A oui ! J'allais oublier.... 17/03/2008, 21h15
omdafer Je ne trouve pas le PB.... 18/03/2008, 08h50
Matthieu2000 randsr semble avoir une seule... 18/03/2008, 16h27
omdafer Donc pour une déclaration à... 18/03/2008, 22h05
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut erreur javascript pour modifier select avec tableau PHP
    Bonjours, j'ai écrits une fonction PHP qui transmet un tableau à Javascript en le remplissant. Puis place dans un select(2) une partie du tableau quand le select(1) change. Cependant, Mon navigateur (Internet Explorer) m'indique une erreur :
    Ligne: 26
    Caractère: 11
    Erreur: 'randsr[...].length' a la valeur Null ou n'est pas un objet.
    Code: 0
    Ma fonction php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    function listrayonsrayon()
    {
     
    require("identsql.php");
    mysql_connect($dbhost,$dbuser,$dbpass) or die("La Connexion a échouée");
     mysql_select_db($dbbase) or die("La Base $dbbase n'existe pas");
      $requete="SELECT nom,rayon FROM m_srayon ORDER BY rayon ASC";
     $result=mysql_query($requete);
     $p=mysql_result($result , 0 , "rayon");
     $o=mysql_num_rows($result);
     $q=0;
     $r=0;
     for($i=0;$i<$o;$i++)
         {
        if(mysql_result($result , $i , "rayon")!=$p)
            {
            $q=0;
            $r++;
            $p=mysql_result($result , $i , "rayon");
            } 
        echo "\n randsr[".$r."][".$q."] ='".mysql_result($result , $i , "nom")."'; \n randr[".$r."] = '".mysql_result($result , $i , "rayon")."'; \n";
        $q++;
     
        }
    mysql_close();
    }
    Mon code javascript qui est entre mes balises head:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script language="javascript">
    var randsr= new Array();
    var randr= new Array();
    <?php listrayonsrayon(); ?>
    function mlrsr()
    {
    var lavaleurr= document.getElementById('leraayon').options[document.getElementById('leraayon').selectedIndex].value;
    for (var i=0; i<randr.length; i++)
        {
        if(randr[i]==lavaleurr) lavaleurr = i;
        }
     
     
    for (i=0; i < randsr[lavaleurr].length; i++)
    { 
    document.getElementById('lesraayon').options[i] = new Option(randsr[lavaleurr][i]);
    }
    }
    </script>
    Et mes select du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select name="leraayon" onchange="mlrsr()" id="leraayon">
              <?php listrayon() // creer des options et fonctionne bien?>
     
            </select>
     
    <select name="lesraayon" id="lesraayon">
            </select>
    Quand j'affiche la page dans mon navigateur et que j'affiche le code source il me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script language="javascript">
    var randsr= new Array();
    var randr= new Array();
     
     randsr[0][0] ='Pantalon'; 
     randr[0] = 'Coté Femme'; 
     
     randsr[1][0] ='Ballerines & Mocasins'; 
     randr[1] = 'Espace Chaussure'; 
     
     randsr[2][0] ='Pantalon'; 
     randr[2] = 'Espace Homme'; 
    function mlrsr()
    {
    var lavaleurr = document.getElementById('leraayon').options[document.getElementById('leraayon').selectedIndex].value;
    for (var i=0; i<randr.length; i++)
        {
        if(randr[i]==lavaleurr) lavaleurr = i;
        }
     
     
    for (i=0; i < randsr[lavaleurr].length; i++)
    { 
    document.getElementById('lesraayon').options[i] = new Option(randsr[lavaleurr][i]);
    }
    }
    </script>
    Je ne vois pas d'où vient l'erreur, PHP faire bien sont travail. Mais Javascript ...???

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    A oui ! J'allais oublier.
    Pour internet explorer la ligne 26 c'est celle ou il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    for (i=0; i < randsr[lavaleurr].length; i++)
    ...
    aidez-moi svp !!!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    Je ne trouve pas le PB. Aidez-moi svp !!!

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    randsr semble avoir une seule dimension et non deux...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    Donc pour une déclaration à deux dimension je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var randsr = new Array()();
    Non ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    La syntaxe semble être bonne, maintenant la même erreur pour randr
    Erreur: 'randr.length' a la valeur Null ou n'est pas un objet.
    pourtant c'est bien un tableau à une dimension cette fois et est déclaré correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var randsr= new Array()();
    var randr= new Array();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] aide pour connection mysql avec du php sur mon site web
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/09/2007, 00h30
  2. Initialisation Select avec Ajax (php)
    Par VooDooNet dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/08/2007, 09h45
  3. [PHP-JS] Javascript pour pop-up dans script php.. ?
    Par asmrct dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/01/2007, 15h16
  4. modifier option select avec tableau
    Par calitom dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/11/2006, 12h12
  5. Réponses: 6
    Dernier message: 08/06/2004, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo