Autres Problèmes en javascript.



  • Bonjour, vous m'avez aidé l'autre jour, et la j'ai encore 2 problèmes sur le même script, je cherche depuis plusieurs jours mais je trouve pas la solution.

    voila les problèmes:

    -Quand je choisi coupe dans le champ type, cela fait apparaitre les boutons Poules et Elimination Directe, quand je choisi Elimination Directe, les champs en dessous devraient changer mais rien ne se passe, je ne sais pas pourquoi.

    -Quand je suis en mode Poules,une fois entré le Nombre de poules et Nombre de joueurs par poule, le Nombre de joueurs maximum devrait se mettre automatiquement mais là rien.

    Le deuxième problème n'est pas trop grave,je peux faire sans mais le premier me bloque completement.

    Merci d'avance pour réponses.

    http://myturn.freeheberg.com/creationtournoi2.php

    <?php 
    include("./sql_local.php");
    $query="SELECT support FROM jeux GROUP BY support ORDER BY support ";
    $sth=$dbh->query($query);
    $result=$sth->fetchAll(PDO::FETCH_ASSOC);
    
    print("
    <SCRIPT LANGUAGE="JavaScript">
    menu=new Array();
    // Rajoutez un élément au tableau menu pour chaque categorie supplémentaire
    // De la même façon, pensez à modifier le formulaire pour rajouter des categories.
    ");
    $num=count($result);
    for ($i=0;$i<$num;$i++)
    {
    print("menu[$i]=new Array();
    ");
    }
    print("
    
    // Modifiez ici les variables pour les menus deroulant
    // la première valeur est le titre, la seconde l'url
    // metter l'url à "null" si vous ne souhaitez pas une redirection pour ce titre
    ");
    $i=0;
    
    foreach($result as $row)
    {
    $support=$row['support'];
    $suptab[$i]=$row['support'];
    $j=0;
    $query="SELECT jeu FROM jeux WHERE support like '$support' ORDER BY jeu ";
    $sth=$dbh->query($query);
    $result2=$sth->fetchAll(PDO::FETCH_ASSOC);
    foreach($result2 as $row2){$jeu=$row2['jeu'];
    print("menu[$i][$j]=new Option("$jeu","$jeu");
    ");
    $j++;}
    print("menu[$i][$j]=new Option("Autre","Autre");
    ");
    $i++;
    }              
    
    print("
    function CalNbj(theme_prin)
    {
    var nbpoule= document.getElementById("nbpoule")
    var nbjoueurp= document.getElementById("nbjoueurp")
    var nbjoueur= document.getElementById("nbjoueur")
    var max=nbjoueurp.value*nbpoule.value
    nbjoueur.innerText=max
    }
    function GestionPoule(theme_prin)
    {var poule= document.getElementById("poule")
    if (poule.checked)
    	{typecoupe.innerHTML="<p><input type=\"radio\" name=\"poule\"  value=\"p\" onClick=\"GestionPoule(this.form)\" checked=\"checked\">Poules <input type=\"radio\" name=\"poule\"  onClick=\"GestionPoule(this.form)\" value=\"e\">Elimination directe</p><p>Nombre de poules:<input type=\"text\" name=\"nbpoule\" value=\"0\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj()\"></p><p>Nombre de joueurs par poule:<input type=\"text\" name=\"nbjoueurp\" value=\"0\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj()\"></p><p>Nombre de joueurs qualifi&eacute;s par poule:<input type=\"text\" name=\"nbjoueurq\" value=\"0\" maxlength=\"15\" size=\"3\"></p><p>Nombre de joueurs maximum:<input type=\"text\" name=\"nbjoueur\" value=\"0\" maxlength=\"15\" size=\"3\" onfocus = \"this.form.nbjoueur.blur()\"></p>";
    	}
    	else{
    	typecoupe.innerHTML="<input type=\"radio\" name=\"poule\"  value=\"p\" onClick=\"GestionPoule(this.form)\" >Poules <input type=\"radio\" name=\"poule\" checked=\"checked\" onClick=\"GestionPoule(this.form)\" value=\"e\">Elimination directe<p>Nombre de joueurs maximum:<input type=\"text\" name=\"nbjoueur\" value=\"0\" maxlength=\"15\" size=\"3\"></p>";
    	}
    }
    function changeC(theme_prin){
         var changechamp = document.getElementById("changechamp")
    	 if (theme_prin.champ.options[theme_prin.champ.selectedIndex].value == "Championnat")
    	{
    	aller.innerHTML="<input type=\"radio\" name=\"ar\"  value=\"a\" checked=\"checked\">Match simple <input type=\"radio\" name=\"ar\" value=\"r\">Aller/Retour<p>Nombre de joueurs maximum:<input type=\"text\" name=\"nbjoueur\" value=\"0\" maxlength=\"15\" size=\"3\"></p>";
    	}
    	if(theme_prin.champ.options[theme_prin.champ.selectedIndex].value == "Coupe"){
    	aller.innerHTML="<input type=\"radio\" name=\"ar\"  value=\"a\" checked=\"checked\">Match simple <input type=\"radio\" name=\"ar\" value=\"r\">Aller/Retour<p><div id=\"typecoupe\"><input type=\"radio\" name=\"poule\"  value=\"p\" onClick=\"GestionPoule(this.form)\" checked=\"checked\">Poules <input type=\"radio\" name=\"poule\"  onClick=\"GestionPoule(this.form)\" value=\"e\">Elimination directe<div><p>Nombre de poules:<input type=\"text\" name=\"nbpoule\" value=\"0\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj()\"></p><p>Nombre de joueurs par poule:<input type=\"text\" name=\"nbjoueurp\" value=\"0\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj()\"></p><p>Nombre de joueurs qualifi&eacute;s par poule:<input type=\"text\" name=\"nbjoueurq\" value=\"0\" maxlength=\"15\" size=\"3\"></p><p>Nombre de joueurs maximum:<input type=\"text\" name=\"nbjoueur\" value=\"0\" maxlength=\"15\" size=\"3\" onfocus = \"this.form.nbjoueur.blur()\"></p>";
    	}
    	}
    function changeCase(theme_prin){
         var changej = document.getElementById("changej")
    	 if (theme_prin.jeux.options[theme_prin.jeux.selectedIndex].value == "Autre")
    	{
    	changej.innerHTML="<input type=\"text\" value=\"Nom du jeu\" name=\"jeux\" id=\"txt\">";}
    	}
    function changeSousTheme(numeroMenu){
    	for (i=document.menuDeroulant.jeux.options.length-1;i>0;i--){
    		document.menuDeroulant.jeux.options[i]=null;
    		}
    
    	for (i=0;i<menu[numeroMenu].length;i++){
    		document.menuDeroulant.jeux.options[i]=new Option(menu[numeroMenu][i].text,menu[numeroMenu][i].value);
    		}
    
    	document.menuDeroulant.jeux.selectedIndex=0;
    	}
    function selectmenu(theme_prin){
    var change = document.getElementById("change");
    var changej = document.getElementById("changej")
    	if (theme_prin.support.options[theme_prin.support.selectedIndex].value == "null")
    	{
    	alert('selectionnez d'abord un support');
    	}
    	else
    	{
    	if (theme_prin.support.options[theme_prin.support.selectedIndex].value == "Autre")
    	{
    	change.innerHTML="<input type=\"text\" value=\"Nom du support\" name=\"support\" id=\"txt\">";
    	changej.innerHTML="<input type=\"text\" value=\"Nom du jeu\" name=\"jeux\" id=\"txt\">";
    		}
    	else
    	{
    		document.location = theme_prin.support.options[theme_prin.support.selectedIndex].value;
    		}
    	}
    }
    </SCRIPT>");
    $sup=implode(';',$suptab);
    print("<div id="apDiv13">");
    print("<p>Cr&eacute;ation d'un tournoi:</p>
    	<FORM NAME="menuDeroulant"method="post" action="validationtournoi.php">
    	<input type="hidden" name="sup" value="$sup">
        <p>Nom du tournoi <input type="text" name="nom" maxlength="30" size="15"></p>
        <p>Support:<div id="change"><SELECT NAME="support" id="liste" SIZE=1 onChange="selectmenu(this.form)">
    	 <OPTION selected VALUE="null">S&eacute;lectionner un support
    	 ");
    	$i=0;
    	foreach($result as $row)
    {$support=$row['support'];
    print("<OPTION VALUE="Javascript:changeSousTheme($i)">$support
    ");
    $i++;
    }
    	print("<OPTION VALUE="Autre">Autre
    </SELECT></div></p>
        <p>Jeu:<div id="changej"> <SELECT NAME="jeux" style="width:225" onChange="changeCase(this.form)">
          <OPTION VALUE="null">S&eacute;lectionner d'abord un support
        </SELECT></div>
    </p>
        <p>Type:<div id="changechamp"> <SELECT NAME="champ" SIZE=1 onChange="changeC(this.form)">
    	<option selected value="null">S&eacute;lectionner un type de tournoi
    	<option value="Championnat">Championnat
    	<option value="Coupe">Coupe
    </select></div> </p>
    <div id="aller"><input type="hidden" name="ar"></div> 
    
        <p align="justify">Descriptif:<textarea name="descriptif" value="Décrivez votre tournoi" rows="5" cols="40"></textarea></p>
        <p align="justify">Date de d&eacute;but:<select name="jours">
    	<option value="01" selected>01</option>
    	<option value="02"> 02</option>
    	<option value="03"> 03</option>
    	<option value="04"> 04</option>
    	<option value="05"> 05</option>
    	<option value="06"> 06</option>
    	<option value="07"> 07</option>
    	<option value="08"> 08</option>
    	<option value="09"> 09</option>
    	<option value="10"> 10</option>
    	<option value="11"> 11</option>
    	<option value="12"> 12</option>
    	<option value="13"> 13</option>
    	<option value="14"> 14</option>
    	<option value="15"> 15</option>
    	<option value="16"> 16</option>
    	<option value="17"> 17</option>
    	<option value="18"> 18</option>
    	<option value="19"> 19</option>
    	<option value="20"> 20</option>
    	<option value="21"> 21</option>
    	<option value="22"> 22</option>
    	<option value="23"> 23</option>
    	<option value="24"> 24</option>
    	<option value="25"> 25</option>
    	<option value="26"> 26</option>
    	<option value="27"> 27</option>
    	<option value="28"> 28</option>
    	<option value="29"> 29</option>
    	<option value="30"> 30</option>
    	<option value="31"> 31</option>
    </select>
    <select name="mois">
    	<option value="01" selected> 01</option>
    	<option value="02"> 02</option>
    	<option value="03"> 03</option>
    	<option value="04"> 04</option>
    	<option value="05"> 05</option>
    	<option value="06"> 06</option>
    	<option value="07"> 07</option>
    	<option value="08"> 08</option>
    	<option value="09"> 09</option>
    	<option value="10"> 10</option>
    	<option value="11"> 11</option>
    	<option value="12"> 12</option>
    </select>
    <input type="text" name="annee"  value="2008"  size="4" maxlength="4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date de fin: <select name="joursf">
    <option value="01" selected> 01</option>
    	<option value="02"> 02</option>
    	<option value="03"> 03</option>
    	<option value="04"> 04</option>
    	<option value="05"> 05</option>
    	<option value="06"> 06</option>
    	<option value="07"> 07</option>
    	<option value="08"> 08</option>
    	<option value="09"> 09</option>
    	<option value="10"> 10</option>
    	<option value="11"> 11</option>
    	<option value="12"> 12</option>
    	<option value="13"> 13</option>
    	<option value="14"> 14</option>
    	<option value="15"> 15</option>
    	<option value="16"> 16</option>
    	<option value="17"> 17</option>
    	<option value="18"> 18</option>
    	<option value="19"> 19</option>
    	<option value="20"> 20</option>
    	<option value="21"> 21</option>
    	<option value="22"> 22</option>
    	<option value="23"> 23</option>
    	<option value="24"> 24</option>
    	<option value="25"> 25</option>
    	<option value="26"> 26</option>
    	<option value="27"> 27</option>
    	<option value="28"> 28</option>
    	<option value="29"> 29</option>
    	<option value="30"> 30</option>
    	<option value="31"> 31</option>
    </select>
    <select name="moisf">
    	<option value="01" selected> 01</option>
    	<option value="02"> 02</option>
    	<option value="03"> 03</option>
    	<option value="04"> 04</option>
    	<option value="05"> 05</option>
    	<option value="06"> 06</option>
    	<option value="07"> 07</option>
    	<option value="08"> 08</option>
    	<option value="09"> 09</option>
    	<option value="10"> 10</option>
    	<option value="11"> 11</option>
    	<option value="12"> 12</option>
    </select>
    <input type="text" name="anneef" value="2008" size="4" maxlength="4"></p>
    <input type="reset" value="effacer">
     <INPUT TYPE="submit" VALUE="Valider">
      </FORM>
    
    </div>");
    
    


  • var poule= document.getElementById("poule")
    ```Aucun élément ne possède l'ID "poule", donc une erreur se produit et le script est arrêté. A toi de trouver pourquoi cet objet n'existe pas.
    
    Même problème pour ta deuxième question, ici:
    

    var nbjoueurp= document.getElementById("nbjoueurp")

    Bref, le script semble aller complètement de travers, et il est trop gros pour qu'on puisse l'analyser complètement.
    Est-ce toi qui l'a fait ?


  • oui je l'ai fait moi même en bidouillant parce que je ne connais pas du tout javascript.
    Mais je vais le revoir entièrement pour voir pourquoi il manque des variables.
    Merci



  • Merci, j'ai résolu la première partie grâce à toi,en fait je croyais que l'id c'était le nom c'est pour ça que j'avais des id qui n'existait pas



  • Bonjour, j'ai résolu une grande partie de mon problème mais voilà,
    j'ai une fonction qui marche sous internet explorer et pas sous firefox.
    la case nbjoueur reste toujours à 0
    Si quelqu'un peut m'aider, merci.

    unction CalNbj(theme_prin)
    {
    var nbpoule= document.getElementById("nbpoule")
    var nbjoueurp= document.getElementById("nbjoueurp")
    var nbjoueurq= document.getElementById("nbjoueurq")
    var max=nbjoueurp.value*nbpoule.value
    
    typecoupe.innerHTML="<p><input type=\"radio\"  id=\"poule\"  name=\"poule\"  value=\"p\" onClick=\"GestionPoule(this.form)\" checked=\"checked\">Poules <input type=\"radio\"  name=\"poule\"  onClick=\"GestionDirecte(this.form)\" value=\"e\">Elimination directe</p><p>Nombre de poules:<input type=\"text\" id=\"nbpoule\" name=\"nbpoule\" value=\""+nbpoule.value+"\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj(this.form)\"></p><p>Nombre de joueurs par poule:<input type=\"text\" id=\"nbjoueurp\" name=\"nbjoueurp\" value=\""+nbjoueurp.value+"\" maxlength=\"15\" size=\"3\" onChange=\"CalNbj(this.form)\" ></p><p>Nombre de joueurs qualifi&eacute;s par poule:<input type=\"text\" name=\"nbjoueurq\" value=\""+nbjoueurq.value+"\" maxlength=\"15\" size=\"3\"><p>Nombre de joueurs maximum:<input type=\"text\" id=\"nbjoueur\" name=\"nbjoueur\" value=\""+nbjoueurp.value*nbpoule.value+"\" maxlength=\"15\" size=\"3\" onfocus = \"blur()\"></p>";
    }
    

Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.