begin process at 2012 05 29 15:05:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

pb éxécution script


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb éxécution script

lundi 21 janvier 2008 à 11:07:06 | pb éxécution script

bricelo

Bonjour, j'ai un script js de reconnaissance de code postal qui fonctionne de façon bancal.
En effet l'appel de la fonction fonctionne bien et la première occurence est bien traitée.

function recherche_cp(tableau)
{
   var longeur_table=tableau.length;
   i=0;

   while ((document.getElementById('cp').value!=tableau[i][0]) && (i < longeur_table))
   {
   /* ici je parcours le tableau pour pouvoir trouver mon code postal */
      i++;
   }

   if (document.getElementById('cp').value==tableau[i][0]) 
   {
   /* quand le cp est trouvé j'affiche la ville dans le champ texte de ma feuille */
      document.getElementById('ville').value=tableau[i][1];
   }

   /* à partir de ce point le code n'est plus éxécuté */
   else
   {
      document.getElementById('ville').value=="le code postal ne correspond a aucune ville";
   } 
   v=0;
   /* il arrive qu'un code postal corresponde a plusieurs ville, ici je mais a jour une liste box pour permetre
    à l'utilisateur de choisir la ville désirée. */

   while (document.getElementById('cp').value==tableau[i][0])
   {
      v++;
      var newOption = document.createElement("option");
 

      newOption.setAttribute("onclick=","selection_ville(this.value)");
      newOption.setAttribute("value",tableau[i][1]);
      newOption.innerHTML=tableau[i][1];
      document.getElementById('ville_multiple').appendChild(newOption);
      document.getElementById('ville_multiple').value=tableau[i][1];
      i++;
   } 
   /* j'affiche m'a liste box si plus d'un code postal est trouve */
   if (v>1)
   {
      document.getElementById('ville_choisie').style.visibility='visible';
   }
   else
   {
   document.getElementById('ville_choisie').style.visibility='hidden';
   }
}
J'ai du passé à coté de quelque chose.
Merci par avance pour votre aide.
mardi 22 janvier 2008 à 12:13:56 | Re : pb éxécution script

nickadele

Membre Club Administrateur CodeS-SourceS
Bonjour,

en fait ton problème vient d'ici :
while ((document.getElementById('cp').value!=tableau[i][0]) && (i < longeur_table))
   {
   /* ici je parcours le tableau pour pouvoir trouver mon code postal */
      i++;
   }
Il s'agit d'une boucle et à part incrémenter i (i++), il n'y a rien.
Sans avoir testé tu devrait avoir ceci :
while ((document.getElementById('cp').value!=tableau[i][0]) && (i < longeur_table))
   {
   /* ici je parcours le tableau pour pouvoir trouver mon code postal */
      
   
   if (document.getElementById('cp').value==tableau[i][0]) 
   {
   /* quand le cp est trouvé j'affiche la ville dans le champ texte de ma feuille */
      document.getElementById('ville').value=tableau[i][1];
   }
   /* à partir de ce point le code n'est plus éxécuté */
   else
   {
      document.getElementById('ville').value=="le code postal ne correspond a aucune ville";
   } 
i++;
}

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
mardi 22 janvier 2008 à 17:09:38 | Re : pb éxécution script

bricelo

Merci Nickadele

en fait j'ai vue d'ou venait une partie de l'erreur

document.getElementById('ville').value=="le code postal ne "

j'assigne une valeur a mon élément avec == alors que un seul suffit (j'ai honte de moi).
 Histoire de continuer à m'afficher, je souhaiterais vous soumettre une nouvelle énigme.

J'utilise des tableaux dont les données sont récupérées depuis une bdd MySQL.
Je fais un mix de code PHP et Javascript de manière a ce qu'il soit chargé une seule fois.
Au départ ce code avait été fait pour un site fonctionnant exclusivement sous IE et fonctionnait parafaitement.
Depuis je suis passé sous drupal et la c'est la cata. Sous Firefox mes tableaux sont parfaitement renseignés et je peus récupérér mes valeurs (cf code du premier post) mais sous IE j'ai une erreur de tableau indéfini. J'ai le mauvais préssentiment que le problème vient de Drupal.

Voici le code:
<?php $i=0; ?>
var tableau14 =new Array (<?php while ($data = mysql_fetch_array($resultat14)){
    $tableau[$i][0] = $data['numeros_cp'];
    $tableau[$i][1] = $data['nom_commune'];
    echo"new Array('".$data["numeros_cp"]."','".$data["nom_commune"]."'),";
    $i++;
 
}
?>
 
Je me rends compte que pour mon premier poste j'abuse.

Merci de m'éclairer.

Cordialement.
mercredi 23 janvier 2008 à 08:56:00 | Re : pb éxécution script

nickadele

Membre Club Administrateur CodeS-SourceS
Et en html ça donne quoi ?

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
mercredi 23 janvier 2008 à 09:25:53 | Re : pb éxécution script

bricelo

Bonjour Nickadele,

Tout d'abord je tiens à te remercie de te pencher sur mon petit problème.

Je ne sais pas si je réponds a ta question mais je vais te décrire le déroulement du chargement de ma page et je te mets les codes qui vont bien.

Je fais appel a une page "devis.php" qui charge mon interface graphique. A la fin du chargement de la page et afin de permettre a l'utilisateur de commencer à travailler je fais éxécuter mes requetes SQL à la fin <?phpinclude req/cp_reg.php ?> 
dans cette page j'éxécute mes requêtes.

$query14
="SELECT * FROM cp14" ;
$resultat14=mysql_query
($query14,$base_id);

<script type=" text/javascript
">

<?php $i= 0 ; ?>
var tableau14 = new Array ( <? php while ($data = mysql_fetch_array
($resultat14)){
    $tableau[$i][
0 ] = $data[ 'numeros_cp'
];
    $tableau[$i][
1 ] = $data[ 'nom_commune'
];
   
echo "new Array('" .$data ["numeros_cp" ]."','".$data[ "nom_commune "]."'),"
;
    $i
++
;
}
?>
</script>

sur la page devis, j'ai un champ code postal dans lequel on entre le cp ex:28130

<input name="cp" type="text" class="Texte_normal2" id="cp" onBlur="recherche_ville()" size="10" maxlength="5"    />

après la saisie du cp et en sortant du champ, je vais éxécuter la fonction "recherche_ville()"

function recherche_ville()
{
var i=0;
<!-- récupere la valeur cp dans un tableau pour la décomposer !-->
 code_postal=new Array();
 code_postal[0]=document.getElementById('cp').value;
  valeur_test=
code_postal[0].substring(0,2);

 switch (valeur_test)
 {
   case "47":
     recherche_cp(tableau14); C'est ici que ce produit l'erreur IE avec Drupal.
      break;
default:
   document.getElementById('cp').value=valeur_test;
    
break;
}

Tu peux te faire une idée du fonctionnement de cette page en allant surwww.blm-it.fr
dans la section devis.

Une nouvelle fois merci pour ton implication.

CDT

Bricelo

mercredi 23 janvier 2008 à 18:04:16 | Re : pb éxécution script

nickadele

Membre Club Administrateur CodeS-SourceS
Re,
j'ai été voir le code html de ta page, à quoi correspont tableauXX (XX étant un numéro) ?

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
mercredi 23 janvier 2008 à 20:11:34 | Re : pb éxécution script

bricelo

re aussi,

j'ai créé 27 table sous mysql dans lesquelles j'y ai mis les CP.

lorsque je fais mes requetes chaque table est mise dans un tableau qui prend au quel j'ai assigné un numeros en fonction de la table interrogé.

donc le table CP1 donne tableau1 etc ...
dans ma première fonction javascript, je prends le cp entré dans ma zone de saisie et j'en extrais les deux premiers chiffres.
ce qui me permet d'appeler la fonction suivante avec le tableau correspondant.

nom_fonction_appelé(tableauXX).

suis-je clair ou ei je répondu a coté ?

c'est peut etre pas tres propre comme façon de coder mais j'étais un peu pressé.

CDT

Bricelo
mercredi 23 janvier 2008 à 20:51:57 | Re : pb éxécution script

nickadele

Membre Club Administrateur CodeS-SourceS
Ok,
il existe toujours le problème suivant sur ta page en ligne :
document.getElementById('ville').value=="le code postal ne correspond a aucune ville";
De plus j'ai remarqué que ta page html contenait elle même une autre page html contenant elle même des appel de balises de type header dans le body.
Tout ça ne me semble pas très claire.
Je pense que tu devrais mettre un peu d'ordre au niveau html.

Pour le reste j'ai une seule erreur sous mozilla ligne 567, bonjour les recherches lol.

Proposition : pourquoi ne pas travailler avec ajax pour obtenir le nom de la ville ?
Principe : un utilisateur encode son cp, sur base du résultat une fonction se charge de faire une requète à une page spécifique de ton site. Cette requète du type [ Lien ] ne rechargera pas la page de l'utilisateur (c'est le principe d'ajax). La page (mapagecp.php) interroge la DB, si elle trouve un résultat elle le renvoie sinon elle renvoie un message d'erreur.
La fonction réceptionne le résultat et l'affiche dans la zone comme actuellement.
Avantage : Page principale plus légère, plus vite générer (plus besoin des X tableaux) pas besoin de charger toutes les données de la DB, gain de performance coté serveur et client.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
vendredi 25 janvier 2008 à 08:49:01 | Re : pb éxécution script

bricelo

Bonjour,

j'ai corrigé le ==.

En ce qui concerne ajax, je ne connais pas mais je vais me pencher dessus.
Je te remerci pour tes conseils.

CDT

Bricelo


Cette discussion est classée dans : tableau, document, value, getelementbyid, ville


Répondre à ce message

Sujets en rapport avec ce message

je comprend pas ?! [ par stequer ] voilas je suis nul en javascript pourier vous m'aider voila mon erreurError: document.getElementById("civilite") has no propertiesSource File: http:// Calcul [ par dity ] DiTy AkA B@d Boµ Bonjour, je suis bloqué devant un travail... Je doit faire un calculateur en javascript, une page html & un fichier js pour exécute sauce light pour fichier js [ par tonytruand ] Bonjour, Un tuyau SVP, à partir d'un formulaire, et en fonction des choix exprimés, je rapatrie des informations diverses grâce au : if (document.getE Ptite question sur une function js [ par destiny ] Bonjour tlm :)Voila j'ai fais une ptite function js qui me modifie la VALUE de mon input suivant la valuer d'un checkbox!function MajTexteValider() {  URGENT !! validation formulaire avec php [ par romainst ] Bonjour j'ai un énorme problème que je dois résoudre rapidement c'est pour ça que j'en appelle à votre aide,J'ai créé récemment ce formulaire de vote Firefox et le javascript [ par destiny ] Lo all,Voila ma function qui va modifier la date de 'Fin sejour' suivant le nbr de semaine souhaiter par rapport à la date du debut du sejour 'Debut s extraire plusieurs mots [ par tonytruand ] Bonsoir,J'ai trové de nombreux moteurs de recherches intra page, moi ce que j'aimerais faire c'est pouvoir extraire dans une page plusieurd mot pré dé imbriquer des fonctions [ par tonytruand ] Bonjour;N'ayant jamais été déçu de vos réponses, je me permets d'en poser une nouvelle . J'ai une fonction qui balaie des ARRAY avec i++, le problème DOCUMENT.WRITE [ par tonytruand ] Bonjour à tous!,J'ai besoin de votre aide car je ne comprends pas tout. j'ai fait en javscript un petit support de recherche.Le principe : j'ai une ba Problème cahce avec IE [ par goulouk ] Bonjour,je voudrais savoir comment empécher de mettre une page en cache, ou alors obliger IE à recharger la page sans la prendre dans le cache.Je vous


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,919 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales