HELP - AJAX Javascript/PHP

Bonjour,

J' ai codé en javaSCRIPT puis envoyé mes données par Ajax pour insérer dans ma base de données en PHP. Mais rien n' y fait... ma base de données reste vide... Merci de m' aider s'il vous plait meme avec un autre langage ou méthode...

2 Pages simplifiés du code :
<script type="text/javascript">
jQuery(document).ready(function()
 { 

$('#ajoutjour').click(function()
            { 
   
   var datelundi= $('#datelundi').val();
   var datemardi= $('#datemardi').val();
   
if(datelundi != '' || datemardi != '')
       {
        
         $.ajax(
                            {
                       type : 'POST',
                       url  : 'addnewjour.php',
                       data :  'datelundi=' + datelundi + '&datemardi=' + datemardi,

        success:function(data)
                            {
                                
                              $('#datelundi').val('');
         $('#datemardi').val('');
                             
                                
                              $('#datelundi').removeClass('is-invalid');
         $('#datemardi').removeClass('is-invalid');
                             
                        valide('Vos jours sont enregistrés.);
      
                           }
                  
              });        
        
        
        
     }else{error('Veuillez noter une journée de la semaine'); $('#datelundi').addClass('is-invalid');}  
       }); 
    
  
  
    function error(element)
    {
     toastr.error(element,'Attention',{
        "positionClass": "toast-bottom-center",
        timeOut: 7000,
        "closeButton": true,
        "debug": false,
        "newestOnTop": true,
        "progressBar": true,
        "preventDuplicates": true,
        "onclick": null,
        "showDuration": "300",
        "hideDuration": "1000",
        "extendedTimeOut": "1000",
        "showEasing": "swing",
        "hideEasing": "linear",
        "showMethod": "fadeIn",
        "hideMethod": "fadeOut",
        "tapToDismiss": false
    });
    }
        function valide(element)
    {
    toastr.success(element,'Merci',{
        "positionClass": "toast-bottom-center",
        timeOut: 5000,
        "closeButton": true,
        "debug": false,
        "newestOnTop": true,
        "progressBar": true,
        "preventDuplicates": true,
        "onclick": null,
        "showDuration": "300",
        "hideDuration": "1000",
        "extendedTimeOut": "1000",
        "showEasing": "swing",
        "hideEasing": "linear",
        "showMethod": "fadeIn",
        "hideMethod": "fadeOut",
        "tapToDismiss": false
 
                                  });
   }
 });
                </script>
   
 


addnewjour.php :
$datelundi = htmlspecialchars($_POST['datelundi']);
$datemardi = htmlspecialchars($_POST['datemardi']);

$req  = $BASE->prepare('INSERT INTO jourdelasemaine(datelundi, datemardi, ) VALUES(?, ?)');
       $req->execute(array($datelundi, $datemardi));

?>


Merci

EDIT de la modération :
Correction du Titre, java n'est pas javascript
Correction du message : java n'est pas javascript
Ajout des balises de code.


Configuration: Windows / Chrome 86.0.4240.75

3 réponses

  1. Modérateur
    Au passage, voici quelques corrections/améliorations au niveau de ton javascript
      jQuery(document).ready(function (){
    
        $('#ajoutjour').click(function (){
    
          var datelundi = $('#datelundi').val();
          var datemardi = $('#datemardi').val();
    
          if (datelundi != '' || datemardi != '') {
            var datas = {'datelundi': datelundi, 'datemardi': datemardi};
            $.ajax({
              type: 'POST',
              url: 'addnewjour.php',
              data: datas,
              dataType: 'json', // pour dire qu'on veut obtenir la réponse au format JSON
              success: function (response) {
                console.log('REPONSE AJAX',response);
                var RESOK = typeof(reponse.SUCCESS)!='undefined' ? response.SUCCESS : null;
                var RESKO = typeof(reponse.ERROR)!='undefined' ? response.ERROR: null;
               if(RESKO ){
                   alert(RESKO );
                   return false;
                }
    
                if( REOK ) {
                  console.log(RESOK);
                  $('#datelundi').val('');
                  $('#datemardi').val('');
                  $('#datelundi').removeClass('is-invalid');
                  $('#datemardi').removeClass('is-invalid');
    
                  valide('Vos jours sont enregistrés.');
                }
              },
              error: function (jqXHR, exception) {
                console.log('ERREUR AJAX',jqXHR.status,jqXHR.responseText );
                alert("Erreur AJAX : Rerder la console pour plus d'infos !");                   
              }
    
            });
    
    
    
          } else {
            error('Veuillez noter une journée de la semaine');
            $('#datelundi').addClass('is-invalid');
          }
        });
    
    
    
        function error(element) {
          toastr.error(element, 'Attention', {
            "positionClass": "toast-bottom-center",
            timeOut: 7000,
            "closeButton": true,
            "debug": false,
            "newestOnTop": true,
            "progressBar": true,
            "preventDuplicates": true,
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut",
            "tapToDismiss": false
          });
        }
    
        function valide(element) {
          toastr.success(element, 'Merci', {
            "positionClass": "toast-bottom-center",
            timeOut: 5000,
            "closeButton": true,
            "debug": false,
            "newestOnTop": true,
            "progressBar": true,
            "preventDuplicates": true,
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut",
            "tapToDismiss": false
    
          });
        }
      });
    


    Et ton code PHP tel qu'il aurait du être écrit après avoir lu et appliqué les conseils données dans les liens....
    <?php
    //affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    
    //connexion à la bdd
    try{
    $BASE =new PDO('mysql:host=localhost;dbname=test; charset=utf8', 'root', '');
    // Activation des erreurs PDO
     $BASE->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
     $BASE->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
    //récupération PROPRE des variables AVANT de les utiliser
    $datelundi = !empty($_POST['datelundi']) ? $_POST['datelundi'] : NULL;
    $datemardi = !empty($_POST['datemardi']) ? $_POST['datemardi'] : NULL;
    
    $result = array(); // variable utilisée pour renvoyer les données au JS
    
    //Traitement....
    if($datelundi && $datemardi) {
      $sql = 'INSERT INTO jourdelasemaine(datelundi, datemardi, ) VALUES(?, ?)';
      $datas = array($datelundi, $datemardi);
      try{
        $req  = $BASE->prepare($sql);
        $result['SUCCESS'] = $req->execute($datas);
      } catch (Exception $ex) {
        $result['ERROR'] = $ex->getMessage();
      }
    } else{
      $result['ERROR'] = 'Variables POST vides !';
    }
    
    echo json_encode($result); // on renvoi les données au format JSON
    exit;
    
    

    1. Voici selon le lien reçu

      <?php
      
      try{
      $BASE =new PDO('mysql:host=localhost;dbname=test; charset=utf8', 'root', '');
      // Activation des erreurs PDO
       $BASE->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
       $BASE->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
      } catch(PDOException $e) {
          die('Erreur : ' . $e->getMessage());
      }
           ?>


      Voici un message d erreur sur l action du bouton inscrire :

      jvscript.js:2 POST //monsitetest/client/addnewjour.php 500
      send @ jvscript.js:2
      ajax @ jvscript.js:2
      (anonymous) @ inscriptionjour.php:680
      dispatch @ jvscript.js:2
      v.handle @ jvscript.js:2

      j ai l' impression que le soucis viens du POST AJAX mais je ne vois pas où? Y a t il une autre méthode qu' AJAX pour faire la meme chose?

      Merci
      1. Modérateur
        C'est TOUT ton code qu'il faut corriger ET nous montrer.
        Là tu n'as mis que ka connexion à la bdd.
        Mais le reste... Tu l'as corrigé aussi ?
    2. Modérateur
      Bonjour,

      Déjà.. tu dis avoir codé en JAVA ... mais tu postes dans le forum JAVASCRIPT.

      Ton code, d'ailleurs... c'est du JAVASCRIPT ....

      JAVA et JAVASCRIPT sont deux langages DIFFERENTS !!

      Ensuite, lorsque tu postes du code sur le forum, merci d'utiliser les BALISES DE CODE.
      Explications ( à lire entièrement !!!! ) disponibles ici :
      https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

      Et enfin :
      - Tu n'as pas mis la connexion à ta bdd dans ton fichier php
      - Vu que tu fais du PDO, penses à gérer correctement les éventuelles erreurs
      - Tu ne nous as pas indiqué, si des erreurs s'affichaient dans la console de ton navigateur ( à noter que pour débuguer de l'ajax, je te recommande fortement de passer par FireFox et surtout, pense à activer le debug HXR )

      Bon, histoire de déjà corriger ton code PHP,
      Commence par Appliquer TOUT ce qui est conseillé ici
      https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

      et là
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

      Reviens nous voir ensuite, avec le code modifié (en tenant compte, donc, de tous les conseils donnés dans les liens que je viens de te passer )
      et on verra, si ton souci persiste, à t'aider à corriger.

      1. Salut Jordane,
        Je crois qu’il y a eu un copier coller malencontreux.
        Commence par Appliquer TOUT ce qui est conseillé ici
        et le lien vers les balises