HELP - AJAX Javascript/PHP

Fermé
Mitch1974 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 6 novembre 2020 - Modifié le 5 nov. 2020 à 18:11
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 6 nov. 2020 à 08:09
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
A voir également:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 nov. 2020 à 08:09
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 5 nov. 2020 à 20:32
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.



0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
5 nov. 2020 à 19:11
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
5 nov. 2020 à 20:33
Bien vu. Merci.
J'ai corrigé
0
Mitch1974 Messages postés 3 Date d'inscription dimanche 26 octobre 2014 Statut Membre Dernière intervention 6 novembre 2020
Modifié le 6 nov. 2020 à 00:41
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 nov. 2020 à 07:20
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 ?
0