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 :

Incrémentation variable si retour Ajax


Sujet :

AJAX

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut Incrémentation variable si retour Ajax
    Je peux enregistrer le champ "nom", mais n'arrive pas à incrémenter "total"
    C'est toujours 1 qui est enregistré dans le champ total.

    HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         <form  action="" method="post">
                  <p class="form-item">
                        <input id="nom" type="text"  name="nom" >
                  </p>
            </form>

    Voici le code jquery/ajax
    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
     
       <script> 
                $(document).ready(function(){
                total=1;
     
                  $('#nom').keydown(function(e) {
                        if (e.keyCode == 13) {
                              var nom = $("#nom").val();
                              var numero = total; 
                               var dataString = 'idUtilisateur='+ idUtilisateur
                                + '&semaine=' + semaine        
                                + '&numero=' + numero
                                + '&nom=' + nom  
     
                              $.ajax({
                                type: "POST",
                                url: 'enregistrerNom.php',
                                data: dataString,
                                 success: function() { 
                                    alert("insertion réussie");
                                    total++;                  
                                 }   
                              }); 
                        }
                    })
              })
    </script>
    ;
    Voici le le fichier "enregistrerNom.php

    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
     
     <?php
     if(isset($_POST['idUtilisateur'])) $idUtilisateur= ($_POST['idUtilisateur']); else $idUtilisateur="inconnu";
     if(isset($_POST['semaine'])) $semaine=($_POST['semaine']); else $semaine="inconnu";
    if(isset($_POST['numero'])) $numero=($_POST['numero']); else $numero="inconnu";
    if(isset($_POST['nom'])) $nom= utf8_decode($_POST['nom']); else $nom="inconnu";
     
    $nom=mysql_escape_string($nom);
     
     
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
     
     
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
     
    $sql = "INSERT INTO semaine (idUtilisateur, semaine, date, numero, nom)
    VALUES ('$idUtilisateur', '$semaine', CURDATE(), '$numero', '$nom')";
     
    if (mysqli_query($conn, $sql)) {
        
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
     
    mysqli_close($conn);
     
    ?>
    Où est l'erreur ?
    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    c'est peut-être que la variable total est mal initialisée mais comme vous ne montrez pas tout votre code, on ne peut pas tester

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    J'ai corrigé : total = 1;
    Tout mon code est là : HTML, jquery/ajax et php.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ce code ne fonctionne pas chez moi avec Firefox, il manque les données idUtilisateur et semaineet donc le formulaire est envoyée sans passer par le code JavaScript.

    vous devriez essayer de déclencher le code à la soumission du formulaire comme çà :
    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
     
    $(function ($) {
     
        var total = 1;
     
        var idUtilisateur = 45;
        var semaine = 4525;
     
     
        $('form').submit(function (e) {
     
            var nom = $("#nom").val();
            var numero = total; 
     
            var dataString = 'idUtilisateur='+ idUtilisateur
            + '&semaine=' + semaine
            + '&numero=' + numero
            + '&nom=' + nom;
     
            $.ajax({
                type: "POST",
                url: 'r.php',
                data: dataString,
                success: function() { 
                    alert("insertion réussie");
                    total++;      
                }
            });
     
            return false;
        });
     
    });

    hors-sujet concernant votre code PHP, regardez là :
    http://securite.developpez.com/faq/?...-SQL-Injection

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    Merci Mathieu : ça marche parfaitement.
    Je vais m'occuper du problème de l'injection.

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

Discussions similaires

  1. [AJAX] INSERT AVEC AJAX ?
    Par munos46 dans le forum AJAX
    Réponses: 2
    Dernier message: 02/06/2009, 10h34
  2. [AJAX] Afficher une image GD avec ajax
    Par darkvodka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2007, 00h43
  3. [AJAX] Ajax en mode synchrone sur Safari
    Par The Blec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 17h52
  4. problème pour faire un insert avec une image
    Par vbcasimir dans le forum Modules
    Réponses: 3
    Dernier message: 02/11/2005, 09h21
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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