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

AJAX Discussion :

Afficher une réponse Ajax dans un champ html input


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2020
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Afficher une réponse Ajax dans un champ html input
    Salut
    Je voudrais afficher le BIC d'un IBAN dans un champ input.
    J'arrive à obtenir la réponse ajax(j'ai testé avec firebug) qui affiche le BIC mais quand je clique sur le champ bic, le BIC ne s'affiche pas dans ce champ.
    je ne sais pas là où le problème se pose.

    Mon code curl.php pour afficher le bic:
    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
    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
    <?php
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
     
    include_once('simple_html_dom.php');
      /* Utilisation de Curl */
     
    //On stock la valeur des variables POST
    $iban=!empty($_POST['iban']) ? $_POST['iban'] : null;
    //$iban = 'BE30293034556711';
     $url='https://www.ibancalculator.com/validate/'.$iban.'/';
    $data=array(
        'tx_valIBAN_pi1[iban]' => $iban) ;
    $fields_string = http_build_query($data);
     
    //Initialisation de curl dans $curl
    $ch = curl_init();
     
    curl_setopt($ch, CURLOPT_URL, $url); //Page sur laquelle envoyer les POST autrement dit la page vers laquelle pointe le formulaire
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string); //On envoie les valeurs 
    curl_setopt($ch, CURLOPT_FAILONERROR, true); // Required for HTTP error codes to be reported via our call to curl_error($ch)
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
     
     
    $data = curl_exec($ch); //Recuparation de la page
    curl_close($ch);
     
    $html = file_get_html($url);
     
     
    $pattern='[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}'; //regex pour BIC EU
    preg_match_all('/'.$pattern.'/', $html->plaintext, $out);
    echo json_encode(array('bic'=>$out[0][0]));
     
    // clean up memory
    $html->clear();
    unset($html);
     
    ?>

    Mon code html:
    Code HTML : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8">
    	<title>Test</title>
    </head>
     
                <form action="../app/user/test" method="post">
                    <div class="form-group row">
                      <label class="col-form-label col-lg-2">IBAN</label>
                      <div class="col-lg-10">
                        <input type="text" name="iban" id="iban" class="form-control" required>
                      </div>
                    </div>
                    <div class="form-group row">
                      <label class="col-form-label col-lg-2">BIC</label>
                      <div class="col-lg-10">
                        <input type="text" name="bic" id="bic" class="form-control"  required>
                      </div>
                    </div>
     
                    <div class="text-center">
                      <button type="submit" class="btn bg-info">Test</button>
                    </div>
                </form>
     
            <script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
            <script type="text/javascript">
            $("#iban").on("blur",function(){
            //on récupére l'IBAN
                var iban = $(this).val();
                    getBIC(iban);
            
            });
            
            function getBIC(iban){
               //On prépare l'Ajax
            $.ajax({ 
                    type: "POST",
                   url:'curl.php', 
                   data: { iban:iban }, //On lui donne le nom des données à récupéré 
                    dataType: "json", //on indique le type de fichier que retourne notre url:'curl.php'
            
                     success: function(result) {
                        if(typeof(result)!="undefined" && result!=null){
                              if(result) {
                                  
                                    console.log(result);
                                    
                                    $("#bic").val(result.bic); 
                              }else{
                             /*  alert("Verifie la console") ;*/
                              }
                        } else{
                            /*  alert ("Erreur");*/
                            }
                     },
                     
                    error: function (err) {
               console.log("Erreur Ajax : ",err);
              /* alert("Erreur Ajax !  Regardez la console pour plus d’informations...");*/
            },
                     
                    });
            }
            </script>
     
        </body>
    </html>

    Lorsque je teste l'iban FR1420041010050500013M02606, voici les erreurs que j'obtiens
    Nom : form.PNG
Affichages : 697
Taille : 2,5 KoNom : 1.PNG
Affichages : 675
Taille : 17,0 KoNom : 2.PNG
Affichages : 688
Taille : 14,2 KoNom : 3.PNG
Affichages : 686
Taille : 24,6 Ko

    J'ai besoin d'aide svp
    Cordialement
    Joey

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Salut,

    D'après ce que je vois, la réponse renvoyée par ton fichier php n'est pas proprement formaté en "json" et c'est pour ça que $.ajax passe directement au bloc d'erreur.

    Il va falloir trouver la ligne qui génère la chaîne de caractère "application/x-httpd......." et la supprimer, et garder seulement l'objet {"bic":"....."} afin que la réponse soit retourné en json.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    effectivement, à quoi te sert cette ligne ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once('simple_html_dom.php');

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2020
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Salut tout le monde,
    ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once('simple_html_dom.php')
    Il s'agit de la bibliothèque PHP Simple HTML DOM Parser, j'ai juste besoin du fichier simple_html_dom.php pour extraire ma chaîne de caractère contenant le bic.
    Pourriez-vous m'aider un peu plus s'il vous plaît merci
    Joey

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2020
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    j'ai fait une mise à jour du fichier simple_html_dom.php et tout marche parfaitement, je vous remercie pour votre aide par contre je voudrais savoir comment afficher le bic dans une div et non dans un input.
    Cordialement,
    Joey

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    je voudrais savoir comment afficher le bic dans une div et non dans un input
    de la même façon mais en utilisant la méthode correspondant au type d'élément à mettre à jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // pour un <input> par exemple
    $("#bic").val(result.bic);
    // pour une <div> par exemple
    $("#bic").html(result.bic);
    Ressource :

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2020
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci pour votre aide.
    Bonne soirée à tous
    Joey

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/11/2008, 19h16
  2. [AJAX] Insérer une réponse ajax dans un div
    Par dzada dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/11/2007, 01h12
  3. Récupérer les valeurs d'une requête SQL dans un champs html SELECT
    Par tamiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/11/2007, 13h27
  4. [MySQL] Afficher une image stockée dans un champs blob
    Par encoupe dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/11/2006, 12h00
  5. Afficher une Image stockée dans un champs BLOB oracle
    Par nonaparus dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2006, 08h26

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