Ajax avec un grand A. - Problème : transfère de données
arion320
Messages postés
234
Date d'inscription
Statut
Membre
Dernière intervention
-
arion320 Messages postés 234 Date d'inscription Statut Membre Dernière intervention -
arion320 Messages postés 234 Date d'inscription Statut Membre Dernière intervention -
Bonjour Bonjour,
Je me casse la tête sur un code depuis quelques jours déjà. Je cherche à transmettre des données vers ma bdd par un fichier externe. Je m'explique, je vous montre :
bdd.php
page1.php
page2.php
Alors voilà :
• Le click fonctionne parfaitement, j'ai réussit à faire fonctionner une alerte.
• Que je le mettre sous form de $.get - $.post - $.ajax
• J'ai fait fonctionner mon php sans bavure sans passer par un code JS. (www.monsite.com/page2.php?id=91&prsentval=1) -> Requête bien traitée.
Si vous avez des idées, des question, des réactions, n'hésitez pas ! Vous avez 2 heures.
Merci d'avance,
Je me casse la tête sur un code depuis quelques jours déjà. Je cherche à transmettre des données vers ma bdd par un fichier externe. Je m'explique, je vous montre :
bdd.php
<?php if(!isset($_SESSION)) { session_start(); } $bdd = New PDO("mysql:host=***MON HOST***;dbname=***NOM BDD***", '*USERNAME*', '*PASSWORD*'); /* Sécurisation du $_SESSION['id']; */ $sessionid = intval($_SESSION['id']); /* Sécurisation du $_GET['id']; pour les pages ayant un identifiant */ $getid = intval($_GET['id']); ?>
<head> <link rel="icon" href="favicon.ico" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript" src="/elements/global/js/prefixfree.min.js"></script> </head>
page1.php
$('#confirming').click(function(){ $.post('page2.php', {id:<?php echo $r['id']; ?>,prsentval:1}); }); $('#reffusing').click(function(){ $.post('page2.php', {id:<?php echo $r['id']; ?>,prsentval:2}); });
page2.php
<?php require_once('bdd.php'); if (isset($sessionid) AND !empty($sessionid)) { $iduser = intval($_GET['id']); $prsentval = intval($_GET['prsentval']); if (!empty($iduser) AND !empty($prsentval)) { $updatevalue = $bdd->prepare("UPDATE personnes SET prsent=" . $prsentval . " WHERE id=" . $iduser); $updatevalue->execute(); } } else { header('Location: page0.php'); } ?>
Alors voilà :
• Le click fonctionne parfaitement, j'ai réussit à faire fonctionner une alerte.
• Que je le mettre sous form de $.get - $.post - $.ajax
• J'ai fait fonctionner mon php sans bavure sans passer par un code JS. (www.monsite.com/page2.php?id=91&prsentval=1) -> Requête bien traitée.
Si vous avez des idées, des question, des réactions, n'hésitez pas ! Vous avez 2 heures.
Merci d'avance,
A voir également:
- Ajax avec un grand A. - Problème : transfère de données
- Photo insta en grand - Guide
- Trier du plus petit au plus grand excel - Guide
- Ordinateur portable grand ecran - Guide
- Alinéa trop grand word - Forum Bureautique
- Dans la présentation à télécharger, déplacez l'image dans le cadre sans en modifier la taille. redressez l'image pour que le niveau de la mer soit à l'horizontale. faites correspondre : la ligne avec le niveau de la mer ; le point avec le sommet de la grande voile. combien d'oiseaux sont dans le cadre ? - Forum Word
1 réponse
Bonjour,
Vu que tu veux faire de l'ajax, commence par retirer la redirection qui se trouve dans ton fichier page2.php
Ensuite, essaye avec ce code :
Et côté page2.php
Bien entendu.. pour voir si tout fonctionne et si il n'y a pas d'erreur.. il faut que tu ouvres la CONSOLE de ton navigateur avant de lancer l'ajax. de préférence via firefox ...
Mais si tu utilises Chrome, pense à installer le plugin Ajax Debuger
Je t'invite également à lire et à appliquer les conseils donnés dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et surtout :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Vu que tu veux faire de l'ajax, commence par retirer la redirection qui se trouve dans ton fichier page2.php
Ensuite, essaye avec ce code :
$('#confirming').click(function(){ var id = '<?php echo $r['id'];?>'; ajaxPage2(id,1) }); $('#reffusing').click(function(){ var id = '<?php echo $r['id'];?>'; ajaxPage2(id,2); }); function ajaxPage2(id,prsentval){ var datas = {id:id,prsentval:prsentval} $.ajax({ type: "POST", url: 'page2.php', data: data, async: true, dataType: "json" }) .done(function(reponse){ console.log('Ajax Success !',response); }) .fail(function(jqXHR, textStatus){ console.log('Erreur', textStatus); }); }
Et côté page2.php
<?php require_once('bdd.php'); $result = array(); if (!empty($sessionid)) { $iduser = !empty($_POST['id']) ? $_POST['id'] : NULL; $prsentval = !empty($_POST['prsentval']) ? $_POST['prsentval'] : NULL; if (!empty($iduser) && !empty($prsentval)) { $sql = "UPDATE personnes SET prsent = :prsentval WHERE id = :id "; $datas = array(":id"=>$iduser , ':prsentval'=>$prsentval); try{ $prep = $bdd->prepare($sql); $result['SUCCESS'] = $prep->execute($datas); }catch(Exception $e){ $result['ERROR'] = 'Erreur dans la requete : '.$e->getMessage(); } }else{ $result['ERROR']= 'iduser ou prsentval sont null !'; } } else { $result['ERROR'] = 'sessionid n`existe pas !'; } //on revoi le resultat au js au format json echo json_encode($result); ?>
Bien entendu.. pour voir si tout fonctionne et si il n'y a pas d'erreur.. il faut que tu ouvres la CONSOLE de ton navigateur avant de lancer l'ajax. de préférence via firefox ...
Mais si tu utilises Chrome, pense à installer le plugin Ajax Debuger
Je t'invite également à lire et à appliquer les conseils donnés dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et surtout :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
J'ai tenter de comprendre tout cela mais c'est vrais que c'est assez compliquer.
Surtout cette histoire de console Ajax ça va me rendre fou. haha
J'aurais une question en attendant que je mette ça en place pour vraiment mieux comprendre la logique.
• Pourquoi retirer la redirection de la page 2 ? Je vérifie si l'utilisateur est bien connecté sinon redirection vers une page Login.
Merci d'avance l'ami !