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 :

[AJAX] Ma fonction ne se termine pas...


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut [AJAX] Ma fonction ne se termine pas...
    Salut !

    Voilà j'ai un problème avec cette fonction.
    J'en ai des tonnes similaires avec juste deux trois différences et qui marchent très bien. J'ai juste tenté ici de poster en plus des deux autres infos le phasenumber qui est, comme le projectid, la valeur d'un select.
    J'ai testé jusqu'où la fonction allait en inserant un alert. Si je le place en dessous de là où il est ou bien dans le if(xhr.readyState == 4 && xhr.status == 200) il ne s'affiche pas, et donc mon champ n'est pas mis à jour et la fonction suivante ne s'execute pas...

    [edit] code avec les dernières modifs [/edit]

    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 UpdatePhaseDate(){
    				getXhr();
    				// Definition of what to do when we'll have the server response
    				xhr.onreadystatechange = function(){
    				// If everything as been received and if the server is ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						NewHTMLCode = xhr.responseText;
    				// We use innerHTML to change the HTML code
    						document.getElementById('PhaseDate').innerHTML = NewHTMLCode ;
    				// Call of the function that updates the next field
    						UpdateDecision();
    					}
    				}
    				// Here we post the informations to generate the new HTML code
    				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel1 = document.getElementById('Project');
    				projectid = sel1.options[sel1.selectedIndex].value;
    				alert("sel1 "+sel1.options[sel1.selectedIndex].value);
    				sel2 = document.getElementById('PhaseNumber');
    				//alert("sel2 "+sel2.options[sel2.selectedIndex].value);
    				//alert("alors?");
    				phasenumber = sel2.options[sel2.selectedIndex].value;
    				alert(phasenumber);
    				xhr.send('ProjectID='+projectid+'&FieldNumber=12&PhaseNumber='+phasenumber);
    			}
    J'ai du passer 3H dessus déjà mais je ne parviens pas à trouver le bug.
    Il faut dire que je suis débutant...

  2. #2
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    moyen d'affecter a sel deux valeurs diferentes :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     sel1 = document.getElementById('Project');
                projectid = sel1.options[sel.selectedIndex].value;
     
      sel2 = document.getElementById('PhaseNumber');
                phasenumber = sel2.options[sel.selectedIndex].value;

    mais bon tu dis que mm le second sel fonctionne alors ma foi ...
    et quid de alert(phasenumber); ?
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  3. #3
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    j'avais déjà modifié ça et je l'ai refait mais ça change rien...

    Merci quand meme

    Le alert(phasenumber) ne fonctionne pas non plus...

  4. #4
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    nous sommes d'accord cela fonctione :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sel = document.getElementById('PhaseNumber');
                alert("jusque là ca marche");
    ça t affiche bien qq chose ?

    si oui c'est que tu remplis mal le second select , et que la value de ton option n'existe pas
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  5. #5
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    oui ca marche...

    Le select est le suivant avec le selected qui change selon les cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <option selected value='-2'>No Phase</option>
    	<option value='-1'>Kick Off</option>
    	<option value='0'>Phase 0</option>
    	<option value='1'>Phase 1</option>
    	<option value='2'>Phase 2</option>
    	<option value='3'>Phase 3</option>
    	<option value='4'>Phase 4</option>"
    les valeurs negatives c'est un probleme ?

  6. #6
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    ça marchait avant que j'essaie d'ajouter le phasenumber... donc il doit les prendre les valeurs negatives...

    Je galère trop là
    à l'aide !

  7. #7
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                sel = document.getElementById('Project');
                 alert(sel); 
     
                sel = document.getElementById('PhaseNumber');
                alert(sel);
    les alerts sont ils differents ? qu'affichent ils ?
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  8. #8
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    bien vu yen a un qui affiche [object] et le suivant affiche null (j'ai mis deux noms differents sel1 et sel2. PhaseNumber est pourtant l'id d'un select. J'ai même mis name et id au cas ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <span id='Phase'style="position:absolute; left:3%;">
    		Phase 
     		<select size="1" id="PhaseNumber" name="PhaseNumber" style="vertical-align: middle; position: relative">
    				<option value='-2'>No Phase</option>
    				<option value='-1'>Kick Off</option>
    				<option value='0'>Phase 0</option>
    				<option value='1'>Phase 1</option>
    				<option value='2'>Phase 2</option>
    				<option value='3'>Phase 3</option>
    				<option value='4'>Phase 4</option>
    			</select>
    	</span>

  9. #9
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    Pas besoin de mettre l'attribut name etant donnée que tu appelles la methode getelembyid...

    si alert(sel2) affiche null y a un probleme...

    ton sel1 est il aussi entouré par un span ?
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  10. #10
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Non par un div et un p... c'est vraiment bizarre... Merci à toi en tout cas de te donner tant de mal pour moi !

  11. #11
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onchange="alert(this.options[this.selectedIndex].value)">
    et ça , ça donne quoi ?
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  12. #12
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    ça marche là il me renvoie le numero de l'option... mais c'est bizarre sel1 me renvoyait [object] et sel2 qui est censé renvoyer la meme chose renvoie null.

    ah non pardon sel1 est bien un objet le alert que tu m'as demandé d'ajouter renvoie la valeur de l'objet (this) si j'ai bien compris ça c'est bon.

    Reste à savoir pourquoi sel2 ne fonctionne pas... et là... étant donné que j'ai copié le code de sel1 ça m'étonne. J'ai vérifié et revérifié que l'ID était bon et il n'apparait pas plusieurs fois (je l'ai déjà fait ce coup là ! :p)

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("sel1 "+sel1.options[sel1.selectedIndex].value);
    et ça marche (heureusement !)

    j'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("sel2 "+sel2.options[sel2.selectedIndex].value);
    et... ben il s'affiche même pas le alert ni celui que j'ai placé juste après pour tester... donc le code arrête son execution là sans dire pourquoi...

    l'a pô compris là....

  13. #13
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Pffffffffffffffff
    j'ai encore le meme bug dans un autre formulaire avec cette fonction...
    sauf que cette fois ci alert(sel) renvoie [object] et si je place en dessous de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type = sel.options[sel.selectedIndex].value;
    un alert(type) il ne s'affiche pas...
    HEEEELP !

    S'il vous plaît !

  14. #14
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Vraiment vous n'avez pas d'idée ? Est ce que ça pourrait venir de mon serveur ?

    Je suis sur ce formulaire depuis au moins 30H sans déconner (ça compte de l'autoformation mais bon...) J'aimerais vraiment pouvoir m'en sortir sans abandonner...

    allez siouplé je suis sur que vous pouvez m'aider !

  15. #15
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    je me permet de vous relancer une dernière fois au sujet de mon bug... Celui-ci me bloque vraiment et j'ai passé des heures dessus sans réussir à le dénicher.

    En espérant que l'un d'entre vous saura m'aider...

  16. #16
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Davboc
    je me permet de vous relancer une dernière fois au sujet de mon bug... Celui-ci me bloque vraiment et j'ai passé des heures dessus sans réussir à le dénicher.

    En espérant que l'un d'entre vous saura m'aider...
    Envoie le code de la page.... (avec au moins les deux selects et les méthodes JS).

    Le must serait que tu isoles une page avec uniquement ce qui ne marche pas....

    Un select dans un span, c'est pas très reglo ça

  17. #17
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    j'ai mis le select dans un span parce que je remplace en ajax son contenu (le select) par un autre select,
    si vous avez une autre methode soyez les bienvenus !

    Voilà la fonction et les deux selects
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
     
    <head>
    //...
    <script type='text/javascript'>
    			var xhr = null; 
     
    			function getXhr(){
    				if(window.XMLHttpRequest) // Firefox and others
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest not supported by the navigator
    				   alert("Your navigator doesn't support XMLHTTPRequest objects... please activate javascript or contact hotline"); 
    				   xhr = false; 
    				} 
    			}
     
    			/**
    			* This method will change the project name in the textbox according to the selected project.
    			*/
    			function UpdateName(){
    				getXhr();
    				// Definition of what to do when we'll have the server response
    				xhr.onreadystatechange = function(){
    				// If everything has been received and if the server is ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						NewHTMLCode = xhr.responseText;
    				// We use innerHTML to change the HTML code
    						document.getElementById('Name').innerHTML = NewHTMLCode ;
    				//Call of the function that updates the next field
    						UpdateCustomer();
    					}
    				}
     
    				// Here we post the informations to generate the new HTML code
    				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('Project');
    				projectid = sel.options[sel.selectedIndex].value;
    				xhr.send('ProjectID='+projectid+'&FieldNumber=1');
    			}
     
    // plein d'autres fonction ou juste le nom le fieldnumber et la fonction appelée changent...
     
    /**
    			* This method will set the current phase as default in the Phase dropdown menu according to the selected project.
    			*/			
    			function UpdatePhase(){
    				getXhr();
    				// Definition of what to do when we'll have the server response
    				xhr.onreadystatechange = function(){
    				// If everything has been received and if the server is ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						NewHTMLCode = xhr.responseText;
    				// We use innerHTML to change the HTML code
    						document.getElementById('Phase').innerHTML = NewHTMLCode ;
    				//Call of the function that updates the next field
    						UpdatePhaseDate();
    					}
    				}
     
    				// Here we post the informations to generate the new HTML code
    				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('Project');
    				projectid = sel.options[sel.selectedIndex].value;
    				xhr.send('ProjectID='+projectid+'&FieldNumber=11');
    			}
    			function UpdatePhaseDate(){
    				getXhr();
    				// Definition of what to do when we'll have the server response
    				xhr.onreadystatechange = function(){
    				// If everything has been received and if the server is ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						NewHTMLCode = xhr.responseText;
    				// We use innerHTML to change the HTML code
    						document.getElementById('PhaseDate').innerHTML = NewHTMLCode ;
    				// Call of the function that updates the next field
    						UpdateDecision();
    					}
    				}
    				// Here we post the informations to generate the new HTML code
    				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel1 = document.getElementById('Project');
    				projectid = sel1.options[sel1.selectedIndex].value;
    				alert("sel1 "+sel1.options[sel1.selectedIndex].value);
    				sel2 = document.getElementById('PhaseNumber');
    				alert("sel2 "+sel2.options[sel2.selectedIndex].value);
    				alert("alors?");
    				phasenumber = sel2.options[sel2.selectedIndex].value;
    				alert(phasenumber);
    				xhr.send('ProjectID='+projectid+'&FieldNumber=12&PhaseNumber='+phasenumber);
    				//xhr.send('ProjectID='+projectid+'&FieldNumber=12');
    			}
     
    //...
     
    </script>
    </head>
    <body>
    <?php
    // declaration of a few variables
    $host = "localhost";
    $user = "root";
    $pass = "xxxx";
    $bdd = "database";
    // connection with MySQL
    @mysql_connect($host, $user, $pass) or die("Database unreachable...");
     
    // the @ is used to tell php not to display the error message    
    @mysql_select_db($bdd) or die("Database unreachable...");
     
    // We create an array in order to number the months (0 => January, 1 => February...)
    $months = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    ?>
    form method=post action="ModifyProject-SendToDB.php">
    <div style="width:100%;">
    <div style="position:relative; margin-top:100px;">
    	<p align="center" style="position:relative; top:10px;">
    		Select a project 
    		<select size="1" name='Project' id='Project' style="vertical-align: middle; position: relative" onchange='UpdateName()'>
    			<?php
                                    // completion of the dropdown with the data from the database.
                              $SQL = "SELECT Name,ProjectID FROM PROJECT" ;
                              $result = mysql_query($SQL) or die('Erreur SQL : '.mysql_error());
                              while ($val = mysql_fetch_array($result)){
                              $Name=htmlentities($val["Name"]);
                              echo "<OPTION VALUE='".$val["ProjectID"]."'>".$Name."</option>";
                        }
                        ?> 
    		</select>
    	</p>  
    </div>
    // ....
    <fieldset class="ligne" style="height:520px">
    <legend>ETM Phases</legend>
    	<span [b]id='Phase' <-- le pb était là !!![/b]style="position:absolute; left:3%;">
    		Phase 
     		<select size="1" id="PhaseNumber" name="PhaseNumber" style="vertical-align: middle; position: relative"
    		onchange="alert(this.options[this.selectedIndex].value)">
    				<option value='-2'>No Phase</option>
    				<option value='-1'>Kick Off</option>
    				<option value='0'>Phase 0</option>
    				<option value='1'>Phase 1</option>
    				<option value='2'>Phase 2</option>
    				<option value='3'>Phase 3</option>
    				<option value='4'>Phase 4</option>
    			</select>
    	</span>
    	<span id='PhaseDate' style="position:absolute; left:26%;">
    		Date 
    		<select size="1" name="DateMonth" style="vertical-align: middle; position: relative">
    			<?php
                                    // completion of the dropdown with each month of the year                       
                                    for ($month = 1; $month<= 12; $month++)
                                    {
                                            echo "<option value='".$month."'>".$months[$month-1]."</option>";
                                    }
                            ?>		
    		</select>
     
    		<select size="1" name="DateDay" style="vertical-align: middle; position: relative">
    			<?php
                                    // completion of the dropdown with each day of the month
                                    for ($day = 1; $day <= 31; $day++)
                                    {
                                            echo "<option value='".$day."'>".$day."</option>";
                                    }
                            ?>		
    		</select>
     
    		<select size="1" name="DateYear">";
    			<?php
                                    // completion of the dropdown with the each year from 2004 to now + 1 year                      
                                    for ($year = 2004; $year<=date('Y')+1; $year++)
                                    {
                                            echo "<option value='".$year."'>".$year."</option>";
                                    }
                            ?>		
    		</select>
    	</span>
     
    //...
     
    </fieldset>
    </form>
    <?php
    // déconnection avec MySQL
    mysql_close();
    ?>
    </body>
    </html>
    voila les bouts de code.

    Le problème semble venir du sel2 = document.getElementById('PhaseNumber'); de la fonction updatephasedate car quand je le supprime le code se continue et affiche les alert() qui suivent dans le cas contraire il semble s'arreter dessus...

    lorsque je remplace en plus la ligne xhr.send('ProjectID='+projectid+'&FieldNumber=12&PhaseNumber='+phasenumber); par xhr.send('ProjectID='+projectid+'&FieldNumber=12');
    donc que je vire le phasenumber et que j'adapte ma requete mysql derrière il n'y a plus de bug...

    voilà un extrait de ModifyProject-FieldUpdate.php, qui genere et renvoie les codes remplacés en ajax
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
     
    <?php
    	mysql_connect("localhost","root","xxx");
    	mysql_select_db("database");
     
    	switch ($_POST['FieldNumber']) {
    case 11:
     
       echo "Phase <select size=\"1\" name='Phase' onchange='UpdatePhaseDate()'>"; 
    	if(isset($_POST["ProjectID"])){
    		$res = mysql_query("SELECT Number FROM phase WHERE ProjectID=".$_POST["ProjectID"]."");
    		if(mysql_numrows($res)!=0){
    			$Max=-2;								//here we look for the highest phase of a given project, in order to display it as the default one
    			while($row = mysql_fetch_assoc($res)){
    				if($row["Number"]>$Max){
    					$Max=$row["Number"];
    				}
    			}
    			switch($Max){
     
    			case -2 :	echo "
    						<option selected value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case -1 :	echo "
    						<option value='-2'>No Phase</option>
    						<option selected value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case 0 :	echo "
    						<option value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option selected value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case 1 :	echo "
    						<option value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option selected value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case 2 :	echo "
    						<option value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option selected value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case 3 :	echo "
    						<option value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option selected value='3'>Phase 3</option>
    						<option value='4'>Phase 4</option>";
     
    			break;
     
    			case 4 :	echo "
    						<option value='-2'>No Phase</option>
    						<option value='-1'>Kick Off</option>
    						<option value='0'>Phase 0</option>
    						<option value='1'>Phase 1</option>
    						<option value='2'>Phase 2</option>
    						<option value='3'>Phase 3</option>
    						<option selected value='4'>Phase 4</option>";
    			}
    		}
    		else{
    			echo "
    			<option selected value='-2'>No Phase</option>
    			<option value='-1'>Kick Off</option>
    			<option value='0'>Phase 0</option>
    			<option value='1'>Phase 1</option>
    			<option value='2'>Phase 2</option>
    			<option value='3'>Phase 3</option>
    			<option value='4'>Phase 4</option>";
    		}
    	}
    	echo "</select>";
     
       break;
     
    /************************************************************************************************************/
     
    case 12:
     
    	if(isset($_POST["ProjectID"])){
    		$months = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    		$res = mysql_query('SELECT SteeringDate FROM phase WHERE ProjectID='.$_POST["ProjectID"].' AND Number='.$_POST["PhaseNumber"]);
    		//$res = mysql_query('SELECT SteeringDate FROM phase WHERE ProjectID='.$_POST["ProjectID"]);
    		$row = mysql_fetch_assoc($res);
    		if(mysql_numrows($res)!=0){
    			list ($yyyy, $mm, $dd) = split ('-', $row["SteeringDate"]);
    			//Month: $mm; Day: $dd; Year: $yyyy
    			echo "Date <select size=\"1\" name=\"DateMonth\" style=\"vertical-align: middle; position: relative\">";
    					// completion of the dropdown with each month of the year			
    					for ($month = 1; $month<= 12; $month++)
    					{
    						if($month!=$mm){
    							echo "<option value='".$month."'>".$months[$month-1]."</option>";
    						}
    						else{
    							echo "<option selected value='".$month."'>".$months[$month-1]."</option>";
    						}	
    					}
    			echo "</select>";
     
    			echo "<select size=\"1\" name=\"DateDay\" style=\"vertical-align: middle; position: relative\">";
    					// completion of the dropdown with each day of the month
    					for ($day = 1; $day <= 31; $day++)
    					{
    						if($day!=$dd){
    							echo "<option value='".$day."'>".$day."</option>";
    						}
    						else{
    							echo "<option selected value='".$day."'>".$day."</option>";
     
    						}
    					}
    			echo "</select>";
     
    			echo "<select size=\"1\" name=\"DateYear\">";
    					// completion of the dropdown with the each year from 2004 to now + 1 year			
    					for ($year = 2004; $year<=date('Y')+1; $year++)
    					{
    						if($year!=$yyyy){
    							echo "<option value='".$year."'>".$year."</option>";
    						}
    					}
    					echo "<option selected value='".$yyyy."'>".$yyyy."</option>";
    			echo "</select>";
     
    		}
    		else
    		{	
    			echo "<select size=\"1\" name=\"DateMonth\" style=\"vertical-align: middle; position: relative\">";
    					// completion of the dropdown with each month of the year			
    					for ($month = 1; $month<= 12; $month++)
    					{
    						echo "<option value='".$month."'>".$months[$month-1]."</option>";
    					}
    			echo "</select>";
     
    			echo "<select size=\"1\" name=\"DateDay\" style=\"vertical-align: middle; position: relative\">";
    					// completion of the dropdown with each day of the month
    					for ($day = 1; $day <= 31; $day++)
    					{
    						echo "<option value='".$day."'>".$day."</option>";
    					}
    			echo "</select>";
     
    			echo "<select size=\"1\" name=\"DateYear\">";
    					// completion of the dropdown with the each year from 2004 to now + 1 year			
    					for ($year = 2004; $year<=date('Y')+1; $year++)
    					{
    						echo "<option value='".$year."'>".$year."</option>";
    					}
    			echo "</select>";
     
    		}
    	}
     
    	break;
    }
    ?>
    J'ai laissé en commentaire les lignes avec lesquelles ça "marche" enfin ça bugue pas...

    Voila je suis bien sûr à votre disposition pour toutes vos questions !
    Merci

  18. #18
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    bon ça a évolué un pote m'a aidé et finalement on s'est rendu compte que l'id du select remplacé en ajax n'était pas bon... Vive le code dynamique...

    Merci du fond du coeur à ceux qui m'ont aidé et ceux qui ont essayé. j'ai honte de m'être autant pris la tête pour une erreur si c*nne...
    M'enfin on va dire que c'est le lot du developpeur

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2010, 17h15
  2. AJAX sous IE 8, l'opération ne se termine pas
    Par kasou94 dans le forum jQuery
    Réponses: 4
    Dernier message: 31/03/2010, 09h07
  3. [Forum] Fonction mail() ne marche pas chez OVH ?
    Par quanou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/11/2005, 13h11
  4. [TTHREAD] ne termine pas sont exécution
    Par Bbenj dans le forum Langage
    Réponses: 4
    Dernier message: 02/08/2002, 16h42

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