Bonjour,
J'ai un landing page avec un formulaire d'inscription, les données saisies s'enregistrent bien dans la BDD.
Ce que j'aimerais faire maintenant c'est limiter le nombre d'enregistrement dans la BDD par exemple à 20 donc récupérer le total du nombre d'enregistrement dans la BDD en PHP/MYSQL puis l'encoder en JSON.
Ensuite en AJAX faire une condition avec la valeur en JSON récupérer pour afficher un pop up qui permet d'avertir que l'inscription est terminé sur ma landing page. Ce popup bloquerait donc l'accès au formulaire car il sera affiché au milieu de la page avec un background et une petite opacité transparente (histoire de ne pas cacher la landing qui sera en arrière plan).
Alors concernant, l'enregistrement dans la BDD, le popup qui permet de bloquer l'accès au formulaire, ou encore la récup du nombre d'enregistrement dans la BDD tout est OK.
Là où je suis bloqué c'est du côter AJAX, c'est à dire comment récupérer le data que j'ai encoder en JSON dans mon fichier PHP. Puis faire une condition du genre si le data est supérieur ou égale à 20 par exemple bah tu m'affiches le popup qui permet l'accès au formulaire et bien sûr tu ne m'enregistre surtout pas les données saisies plus dans la BDD.
J'ai déjà commencer à coder voilà mes codes :
La partie PHP : où je récupère le total du nombre d'enregistrement dans ma base, il n'y pas de soucis ça me retourne bien la valeur que je veux
<?php
//Connection au serveur et à la base de données
$con=mysql_connect("127.0.0.1:8889", "root", "root");
mysql_select_db('base_test',$con);
$req = mysql_query('SELECT COUNT(*) AS nbLignes FROM kone_20ans_Paris') OR die(mysql_error());
$row = mysql_fetch_assoc($req);
$result = $row['nbLignes'];
$nbLignes = json_encode($result);
echo $nbLignes;
?>
Ensuite la partie AJAX : là où je fais ma condition qui dit que si c'est supérieur ou égale à 20 tu m'affiche un popop devant la landing et tu ne m'enregistres pas ce qui on été saisient dans la BDD.
$.ajax({
type:"POST";
datatype:"json",
url: "retourJson.php",
data: {nbLignes:nbLignes},
success : function(data){
alert(data);
},
error: function(){
alert('erreur');*
}
});
Votre HELP Please !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Si ton php retourne :
echo json_encode($row);
ton json devrait ressembler à
{ "nbLignes" : 42}
et en javascript il suffit de lire data.nbLignes
PS: prépare toi à recevoir des pierres car tu utilises l'ancienne API MySQL (c mal)
Merci j'ai réussi à le convertir en integer en rajoutant JSON_NUMERIC_CHECK lors de l'encodage du data dans le fichier php
echo json_encode($result, JSON_NUMERIC_CHECK);
Merci @Huggy , parcontre j'ai un autre soucis c'est que j'aimerais convertir mon data en Integer, j'ai essayer plusieur fois comme ceci :
$(document).ready(function(){
//FONCTION TRAITEMENT DONNEE JSON
$.ajax({
type:"GET",
datatype:"JSON",
url: "retourJson.php",
data: "",
success : function(result){
var nbLignes = result;
$('#output').html('nombre de ligne = ' + parseInt(nbLignes));
},
error: function(){
$('#output').html('erreur');
}
});
Mais ça m'affiche toujours cet erreur : * " nombre de ligne = NaN " ***
en fait j'aimerais que ça affiche juste 42 au lieu de "42"
Not a Numeric !!! c'est que ton result vaut {"42"}
fais un console.log(result) pour voir si c'est ça
Merci Huggy, mais ça fontionne maintenant j'ai juste rajouté la fonction php JSON_NUMERIC_CHECK .