Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/06/2008, 14h35   #1
Invité régulier
 
Inscription : juin 2008
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 22
Points : 5
Points : 5
Par défaut saisie automatique qui plante sous AJAX

Bonjour, j'ai réalisé un petit script sous AJAX/asp.net/csharp.
Je fais de la saisie automatique dans une textbox qui m'affiche un select avec le nom des communes recherchées, mais lorsque je tape mes lettres trop rapidement, la page internet plante.
Je ne comprends pas pourquoi et je n'ai pas la compétence pour.
Est ce que quelqu'un pourrait m'aider?

Voici mon code JAVASCRIPT:
Code :
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
 
function dotest2(e) 
{   
    var commune_saisie = document.getElementById("commune_saisie");
 
    //action sur la flèche du bas( qui correspont au keycode numéro 40 )...
        if( e.keyCode == 40 )
            document.forms[0].elements["cummune_a_trouvee"].focus();
        else if( commune_saisie.value.length > 0 ) 
            setTimeout(commune, 200);
}
function commune()
{
    var commune_saisie = document.getElementById("commune_saisie");
 
    masqueFleche();
    document.getElementById("liste_vide").style.display = "none";
    document.getElementById("commentaire").value = "";
    document.getElementById("resultat").value = "";
    document.getElementById("resultat2").value = "";    
 
    if(commune_saisie.value.length>1)
    {
        WebSite1.Methods.retourne_communes_recherchee(commune_saisie.value, commune_callback);
    }
}
function commune_callback(res)
{
    var commune_recherchee = document.getElementById("commune_recherchee");
    var s = "";
 
    if(res!=null)
    {
        for(var i=0;i<res.value.length;i++)
        {
            s = s + "<option value='"+ res.value[i] +"'>"+ res.value[i] +"</option>";
        }  
    }
 
    s = '<select class="case" onChange="selection_commune_recherche();" id="cummune_a_trouvee" name="cummune_a_trouvee" size=6 style=width:260px>' + s + '</select>';
    commune_recherchee.innerHTML = s;
    //alert(s);
}
Voici mon code aspx:
Code :
1
2
3
4
5
 
<tr><td height="20" class="tableau">
<div id="commune_recherchee"></div>
<select class="case" id="liste_vide" size="6" style="width:260px;" visible="true"></select>
</td></tr>
Voici ma méthode AJAX:
Code :
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
        [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)]
        public string[] retourne_communes_recherchee(string val)
        {
            List<string> listecommune = new List<string>();
 
            //lock????
            lock (syncroot)
            {
                try
                {
                    websamu.PECSAMU_COMMUNE[] tableau_commune = null;
 
                    if (HttpContext.Current.Session != null && HttpContext.Current.Session["__tableau_commune"] != null)
                    {
                        tableau_commune = (websamu.PECSAMU_COMMUNE[])HttpContext.Current.Session["__tableau_commune"];
                    }
 
                    if (tableau_commune != null)
                    {
                        foreach (websamu.PECSAMU_COMMUNE commune in tableau_commune)
                        {
                            if (commune.Commune.IndexOf(val, StringComparison.InvariantCultureIgnoreCase) > -1 || commune.Commune.Replace("â", "a").Replace("Â", "a").Replace("ô", "o").Replace("Ô", "o").Replace("û", "u").Replace("Û", "u").Replace("é", "e").Replace("É", "e").Replace("è", "e").Replace("È", "e").IndexOf(val, StringComparison.InvariantCultureIgnoreCase) > -1)
                            {
                                string commune_inseree = commune.Commune.Replace("'","_");
                                listecommune.Add(commune_inseree);
                            }
                        }
                    }
                }
                catch
                {
                }
            }
 
            return listecommune.ToArray();
        }
Voilà donc ça plante et je ne vois vraiment pas, donc si vous pourriez me venir en aide ce serait gentil
kosowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h16.


 
 
 
 
Partenaires

Hébergement Web