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 :

Transmission de flux, Javascript, Ajax, Json


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut Transmission de flux, Javascript, Ajax, Json
    Bonsoir à tous,

    J'ai un gros problème depuis 15jours que je n'arrive pas à solutionner.

    un développeur qui travaille pour moi tente de réaliser une API pour transmettre des données vers une entreprise.

    Or les données ne parviennent pas a destination, car un double quotte apparaît toujours dans le résultat final, et le serveur de destination refuse qu'il y ait des quottes, principalement dans les valeurs numériques.

    par exemple dans mon code ci-dessous j'ai 'montant' : parseInt($(this).find("input[name='solde']").val()), et le resultat final doit être solde : 100, et moi j'ai solde :"100",.

    Voici le code complet, je remercie par avance toute personne qui pourra nous aider a trouver la solutions. Excellente soirée a tous.

    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
    window.addEventListener("load", function(){
        $("input[name='nclcred']").keyup(function(event){poplate(event)});
        //var name_input = document.getElementById('nclcred');
        //name_input.addEventListener("keyup", function(event){poplate(event)});
        window.hinterXHR = new XMLHttpRequest();
    });
    function poplate(event) {
        var input = event.target;
        var societes_c = document.getElementById('societes_c');
        var min_characters = 0;
        if (input.value.length < min_characters ) { return;}
    	else 
    	{
    	    window.hinterXHR.abort();
            window.hinterXHR.onreadystatechange = function() 
    		{
                if (this.readyState == 4 && this.status == 200) 
    			{
    			    var response = JSON.parse( this.responseText );
    			    societes_credits.innerHTML = "";
                    response.forEach(function(item) 
    				{
                        var option = document.createElement('option');
                        option.value = item;
                        societes_credits.appendChild(option);
                    });
                }
            };
            window.hinterXHR.open("GET", "societes.php?query=" + input.value, true);
            window.hinterXHR.send()
        }
    }
     
    function searchSociete(societe){
        var societes = {
            "1" : "AAAAAA",
            "2" : "BBBBBB",
            "3" : "CCCCCC",
            "4" : "DDDDD",
            "5" : "EEEEEE"
        };
        for (var i in societes) {
            if (societes[i] === societe){
                return i;
            }
        }
        return "5"; // Autre organisme
    }
     
    $( document ).ready(function() 
    {
        $("#form-toto").on('submit', function(e) 
    	{
            e.preventDefault();
            var $submiteBtn = $('#envoyer');
            $submiteBtn.button('loading');
            $form = $(this);
            var formData = {
                'numero_contremarque' : $("input[name='numero_c']").val(),
                'monsieur' : {
                    'etat_civil': {
                        'civilite': $("select[name='n_cl_civ_e']").val(),
                        'nom': $("input[name='nom_e']").val(),
                        'prenom': $("input[name='prenom_e']").val(),
                    },
                },
                'foyer' : {
                    'statut_logement' : $("select[name='n_cl_log']").val(),
                    'date_entree' : $("input[name='log_depuis']").val()+"T00:00:00",
                    'nombre_personne_foyer': parseInt($("input[name='log_nb_p']").val()),
                    'nombre_enfants' : parseInt($("input[name='log_nb_e']").val())
                },
            };
            $('div.well.c').each(function() 
    		{
            	formData.projet.credits.push ({
                	'societe' : searchSociete($(this).find("input[name='nclcred']").val()),
                    'montant' : parseInt($(this).find("input[name='solde']").val()),
                });
            });
            $.ajax({
                type: $form.attr('method'),
                url: $form.attr('action'),
                data: formData,
                dataType: 'json',
                encode: true,
                success: function (response) 
    			{
                    $submiteBtn.button('reset');
                    if(response.statut == 'OK'){ $('.alert-success').show(); $('.alert-danger').hide(); }
                    else{$('.alert-danger').show(); $('.alert-success').hide();}
                }
            })
        });
    });

  2. #2
    Isher
    Invité(e)
    Par défaut
    Bonjour,

    Vous devriez précisez la base de conversion pour parseInt. je site https://developer.mozilla.org/fr/doc...obaux/parseInt

    "Attention ! La base par défaut n'est pas 10. Ce paramètre doit toujours être utilisé, en effet s'il n'est pas spécifié, le comportement de la fonction n'est pas garanti et peut varier d'une plate-forme à une autre."

    il y a beaucoup de fonctions imbriquées dans le parseInt, avez vérifié ce que renvoi réellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).find("input[name='solde']").val()
    De plus, je ne connais pas bien JQuery mais un 'find' renvoie en général une collection.

    Enfin, peut-être vous pourriez convertir vous même la classe en JSON avec un JSON.stringify pour la passer à la fonction ajax de jquery. Le résultat intermédiaire vous permettra de vérifier le format.

    Hope that helps
    --
    Éric Santonacci

Discussions similaires

  1. Création d'une carte réseau en temps réel (Javascript/php/Json/AJax)
    Par hermally dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 31/03/2015, 11h28
  2. [AJAX] Ajax-JSON et Javascript
    Par forzalec dans le forum jQuery
    Réponses: 3
    Dernier message: 04/03/2014, 14h24
  3. [AJAX] JSon erreur javascript
    Par jypees dans le forum AJAX
    Réponses: 2
    Dernier message: 16/11/2009, 21h18
  4. [AJAX] Récupérer une liste d'objet d'un flux RSS en JSON
    Par Tavarez59 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/10/2007, 01h10

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