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 :

innerHTML et les chiffres commenceant par 0


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut innerHTML et les chiffres commenceant par 0
    Bonjour


    J'ai un problème avec la méthode innerHTML .

    newCell.innerHTML =saisie;

    saisie est la valeur que je saisie dans un champs texte , que je récupère par la suite (après avoir écris sa valeur dans un fichier texte) pour l afficher dans une case de tableau.
    Tous s'affiche Très bien quand je saisie des valeurs Ne commenceant pas avec 0 , exemple : 22935632 m'affiche bien 22935632. Par Contre lorsque je saisies des valeurs commenceant par 0 l'affichage n'est pas bon exemple si je saisies 0111111111 il m'affiche 19173961... c'est comme si la valeur a été convertie dans un autre format..étant débutant en javascript Merci de m'orienter vers un piste qui me permet de résoudre le problème.

    Amicalement

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    code?

    sinon essaie la ligne 46

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    c'est comme si la valeur a été convertie dans un autre format.
    En octal par exemple...
    Les fonctions parseInt et parseFloat prennent par exemple un 2e argument qui correspond à la base choisie, si cet argument est omis et que le nombre commence par 0, ce sera de l'octal par défaut.

    Mais bon, ce n'est qu'une suggestion car comme le fait remarquer Matthieu2000, sans code ni boule de cristal
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour

    Voici les fonctions que j'utilise :


    Code javascript : 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
     
    function ecrire(saisie) {
     
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non support par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				}
     
    	if( IsNumeric (saisie.trim()) ) {
     
    		xhr.open("POST", "scripts/fwrite.php", false); // Synchro
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		xhr.send("texte="+saisie);	
    	} else return false;
    }
    				function go(saisie){
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non support par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
    				// On dfini ce qu'on va faire quand on aura la rponse			
    					xhr.open("POST","sql/updatercv.php",false);
    				//	xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reu et que le serveur est ok
    				//	if(xhr.readyState == 4 && xhr.status == 200){
    //alert(document.forms['form_pointage'].elements['saisie'].value);	
    if (  typeof (saisie)=="number" ) {			
    var newRow = document.getElementById('tablist').insertRow(-1);
    var newCell = newRow.insertCell(0);
    //saisie=document.getElementById('saisie').value;
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');				// ici, l'id du client
    			 // saisie= document.getElementById('saisie');
    				xhr.send("rcv_no="+saisie);	
    saisie=saisie.toString();
    newCell.innerHTML =saisie;
    //if (! newCell.innerHTML==''){
                  newCell = newRow.insertCell(1);
                  if(xhr.responseText==2){    
    							 newCell.innerHTML ='<img src="img/non.jpg" />';
    							 document.getElementById('saisie').value='';
    						  }
                  if(xhr.responseText==1){
    							 newCell.innerHTML ='<img src="img/ok.jpg" />';     
                   document.getElementById('saisie').value='';                            
                  }				        
               	}		   	
     //  }        			   	//	 
                //document.getElementById('saisie').readonly=0;
     //}
    				// Ici on va voir comment faire du post				
    				// ne pas oublier a pour le post			
    			}



    Amicalement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour

    Je vais essayer avec la fonction parseInt en spécifiant les deux arguments à la fois comme vous me l'aviez proposé .

    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour

    j'ai essayé avec newCell.innerHTML =parseInt(saisie,10); c'est à dire le base 10 mais j'ai toujours le meme problème
    Faudrait t'il agir autrement?

    Amicalement

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    teste avec une regExp le nombre de 0 en debut de saisie et rajoutes les après

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    bonjour

    ca ne fonctionne toujours pas, déja lorsque je place un alert(saisie) au tout début de ma fonction go()..j'ai une première fenetre qui me marque UNDEFINED puis s'ouvere une deuximme fenetre (je ne sais pourquoi deux fois alors que je n'ai utilisé qu'un seul alert()) avec un numero aleatoire , lorsque je saisie un chiffre commenceant par zero.

    Merci
    Amicalement

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Tout cela est un peu confus, mais il semble que tu ne saches pas qu'un champ texte est toujours de type String (même s'il n'est composé que de chiffres), donc tes tests du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (  typeof (saisie)=="number" )
    sont à la fois inutiles et susceptibles d'engendrer des erreurs.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour


    Merci Bovine, mais justement j ai fais des test en ommetant cette ligne if ( typeof (saisie)=="number" )
    Mais le problème persiste encore...Il me parait que le problème réside dans le code PHP qui transmet la valeur de saisie à la fonction go().
    Le code php en fait lis dans un fichier texte ces valeurs puis il es passent à la fonction.. j'ai bien vérifier la valeur dans le script php (y'as pas de souci)..le souci se produit lorsque je transmet la variable à la fonction javascript..
    Voici le bout de code php : Merci de me dire si le code vous semble anormale (mais normalement je n'ai pas de message d'erreur): si le passage en parametre de la variable php dans javascript est correct.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    if( file_exists ( "tmp/fichier".$_SESSION['id']) ){
    $fichier="tmp/fichier".$_SESSION['id']; 
    $tab=file($fichier);
    $ligne=count($tab); 
    for($i=$ligne;$i>-1;$i--){
    //$valeur_tab=str_replace("\n", "", $tab[$i]);
    $valeur_tab=chop($tab[$i]);
    settype($valeur_tab, "string");
    echo '<script>go('.$valeur_tab.')</script>';
    }
    }
    ?>

    Cordialement

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    bonjour



    voila le bout du code qu'il fallait changer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<script>go("'.$valeur_tab.'")</script>';

    j'avais oublié des quotes , c'est pourqoui j'avais le bazar
    Merci
    Problème résolue

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour

    en fin du compte j'ai encore un petit souci , lorsque je place ALERT (saisie) au tout début de ma fonction go() j'ai deux alert qui s'affiche .. le premier s'affiche comme il faut , si je transmet cette fois ci la valeur '01111' par exemple j'affiche bien ma valeur '01111' mais juste apres une valeur vide ..si comme si j'ai deux ALERT() dans ma fonctions...

    Amicalemenent

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    encore une fois , c'était la boucle for qui a crée le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($i=$ligne-1;$i>-1;$i--){
              //$valeur_tab=str_replace("\n", "", $tab[$i]);
              $valeur_tab=chop($tab[$i]);
              settype($valeur_tab, "string");
              echo '<script>go("'.$valeur_tab.'")</script>';
          }
    j'ai mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=$ligne-1;$i>-1;$i--){
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=$ligne;$i>-1;$i--){
    par tatonnement et ca a marché ..


    merci à tous

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

Discussions similaires

  1. Rechercher tous les ID commencant par
    Par kryogen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2008, 14h07
  2. Rentrer des chiffres commencant par un 0 sans le perdre.
    Par sebastien_oasis dans le forum IHM
    Réponses: 2
    Dernier message: 20/08/2007, 18h14
  3. fonction recherche tous les articles commencant par *
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 31/01/2007, 16h04
  4. Rechercher les occurences commencant par un chiffre
    Par tony slayer dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/05/2005, 14h48
  5. [langage] Trouvé les lignes commencant par [
    Par Nervix dans le forum Langage
    Réponses: 2
    Dernier message: 13/07/2004, 10h04

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