[RESOLU] Date picker et event

Eléphant du PHP | 372 Messages

19 juin 2014, 10:38

Salut voilà le petit problème je suis un grand débutant mais j'essai ....
Lorsque le membre de mon site clik sur une date du datepicker cela doit lui afficher le titre de l'événement si celui correspondant à la même date biensur....mais là, rien ne se pass.
Merci pour vos lumières

Page profil.php

<?php session_start();?>
<?php $page = "profil";?>
<?php include("include/header.php");?>


<!-- DATEPICKER -->
<input type="text" id="datetimepicker3"/>

[javascript]<script type="text/java-script">
jQuery('#datetimepicker3').datetimepicker({
timepicker:false,//on enleve le selecteur de l'heure et des min
inline:true, // on fait en sorte que le calendrier reste constament ouvert
DateTime:function(dp,$input){
$.ajax({
url : "ajax.php?date="+date,
success : function (data, textStatuts, jqXHR) {
var evenements = eval(data);
// ICI on affiche les données
}

}
});
</script>
[/javascript]





Page ajax.php
<?php
try
{
$bdd = new PDO('mysql:*******************;dbname=*****************','****************','**********');
$bdd->exec('SET NAMES utf8');
}
 
catch(Exception $e)
{
echo 'Une erreur est survenue !';
 die();
}
?>


<?php
// on recupère la date passé en paramètre
$_GET['date']
?>

<?php
//La requete permet de recup l'id, la date et le titre de la sortie de la table favoris du membre identifié
$req = $bdd->query("SELECT  id_loisirs,titre,date_debut_sortie FROM favoris f LEFT JOIN simply_user su ON f.`id_simply_user` = su.`id_simply_user` LEFT JOIN loisirs l ON f.`id_loisir` = l.`id_loisirs` WHERE su.`id_simply_user` =".$_SESSION['userid']);
?>


<?php
// si $results contient le résultat de la requete
echo json_encode($results);
?>
Modifié en dernier par blinz le 19 juin 2014, 13:13, modifié 1 fois.

Mammouth du PHP | 1339 Messages

19 juin 2014, 12:42

// on recupère la date passé en paramètre
$_GET['date']
Là tu fais juste rien a part creer une erreur en oubliant le ;
// si $results contient le résultat de la requete
echo json_encode($results);
La variable $results n'est pas déclarée meme si je sais bien e quetu veux faire ...

Il n'y a pas de session_start(); donc ton $_SESSION['id'] ne retournera rien.

Voila, tu as de quoi avancer... Bien mettre en forme ton $_GET['date'] pour que ca coincide avec le format dans la base de données et l'ajouté dans le WHERE pour savoir si il y a un evenement pour ce membre à cette date...

Penses a faire une boucle si le mec a 2 evenements ...
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 372 Messages

19 juin 2014, 13:09

Bjr,
En fait mon session est bien déclaré je l'ai pas mis car j'ai mis uniquement mon code ou ça merdé....(Du coup j'ai mis le complet maitenant).
$_GET['date']; à était corrigé

Du coup j'ai juste besoin d'un coup de pouce pour 3 trucs à mon avis pas méchant mais je bloque....
1 / Mon datepicker ne s'affiche plus depuis que j'ai mis le script.js ( page profil.php )
2 / Comment déclaré exactement le WHERE au sein de ma requete ( page ajax.php )
3 / Pour la boucle $result est ce qu'il y a quelque chose de particulier à faire ( page ajax.php )

Page profil.php
<?php session_start();?>
<?php $page = "profil";?>
<!-------------- BDD ACCES PAGE + ANNONCES ---------------->

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Trouver ma sortie</title>
<link href='http://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<link rel="stylesheet" href="css/jquery.datetimepicker.css">
<link rel="stylesheet" href="css/custom.css">
<link rel="Stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" />
</head>


<body>
<?php include("include/header.php");?>
 

    



<!-- DATEPICKER -->
<input type="text" id="datetimepicker3"/>
	

<script type="text/java-script">
jQuery('#datetimepicker3').datetimepicker({
timepicker:false,//on enleve le selecteur de l'heure et des min
inline:true, // on fait en sorte que le calendrier reste constament ouvert
DateTime:function(dp,$input){
    $.ajax({
    url : "ajax.php?date="+date,
    success : function (data, textStatuts, jqXHR) {
        var evenements = eval(data);
        // ICI TU AFFICHES TES DONNEES
   }

  }
});
</script>
    
</body>
<script src="js/jquery.js"></script>
<script src="js/jquery.datetimepicker.js"></script>
<script src="http://momentjs.com/downloads/moment.min.js"></script>
</html>
Page Ajax.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Document sans titre</title>
</head>

<body>

<?php
try
{
$bdd = new PDO('mysql:host=**************************;dbname=********************1','********************',**************');
$bdd->exec('SET NAMES utf8');
}
 
catch(Exception $e)
{
echo 'Une erreur est survenue !';
die();
}
?>


<?php
// on recupère la date passé en paramètre
$_GET['date'];
?>

<?php
//La requete permet de recup l'id, la date et le titre de la sortie de la table favoris du membre identifié
$req = $bdd->query("SELECT  id_loisirs,titre,date_debut_sortie FROM favoris f LEFT JOIN simply_user su ON f.`id_simply_user` = su.`id_simply_user` LEFT JOIN loisirs l ON f.`id_loisir` = l.`id_loisirs` WHERE su.`id_simply_user` =".$_SESSION['userid']);
?>

<?php
//Faire une boucle je suposse pour récupérer les events du membre mais de quel genre.....
//.................
?>


<?php
// si $results contient le résultat de la requete
echo json_encode($results);
?>

</body>
</html>

Mammouth du PHP | 1339 Messages

19 juin 2014, 13:35

<?php

// Certainement pas de balise HTML dans une page que l'on appelle en AJAX

session_start();

// Je serais toi, je stockerai mes identifiant de connexion dans un fichier externe comme ca, si tu le modifies, tu n'as pas besoin de retoucher toutes les pages.
try
{
$bdd = new PDO('mysql:host=**************************;dbname=********************1','********************','**************');
$bdd->exec('SET NAMES utf8');
}
 
catch(Exception $e)
{
echo 'Une erreur est survenue !';
die();
}

// on recupère la date passé en paramètre
$explode = explode('/', $_GET['date']); // A mon avis tu recuperes dd/mm/YYYY
$date = $explode[2].'-'.$explode[1].'-'.$explode[0];	// La tu as du coup YYYY-mm-dd, le format classique MySQL
// Faut voir a quoi ressemble date_debut_sortie en fait ...


//La requete permet de recup l'id, la date et le titre de la sortie de la table favoris du membre identifié
$req = $bdd->query("SELECT f.id_loisirs, f.titre, f.date_debut_sortie FROM favoris f LEFT JOIN simply_user su ON f.`id_simply_user` = su.`id_simply_user` LEFT JOIN loisirs l ON f.`id_loisir` = l.`id_loisirs` WHERE f.date_debut_sortie = '".$date."' AND su.`id_simply_user` =".$_SESSION['userid']);

$loisir = array();
while($row = $req->fetch(PDO::FETCH_ASSOC)) {
	$loisir[] = $row['titre'];
}

echo implode('<br />', $loisir);

?>
Encore une fois, le plus simple est d'accepter que de faire un site c'est compliqué.
Soit tu fais un site compliqué et tu prendre 1 an a comprendre ce que tu fais soit tu fais un bloc et accepte que tout n'est pas comme tu le souhaites.
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 372 Messages

19 juin 2014, 16:53

Merc ide votre contribution et je sais bien que c'est compliqué je galère c'est pour ça que je solicite de l'aide.

J'ai cependant un soucis juste dans mon script du input.

Le datepicker
<input type="text" id="datetimepicker3"/>
Une erreur de syntaxe ?
J'ai cette ligne mis en erreur : onChangeDateTime:function(dp,$input){
[javascript]<script type="text/javascript">
jQuery(function(){
jQuery('#datetimepicker3').datetimepicker({
timepicker:false,
inline:true,
onChangeDateTime:function(dp,$input){
$.ajax({
url : "ajax.php?date="+$input.val(),
success : function (data, textStatuts, jqXHR) {
var evenements = eval(data);
// ICI
}
});
});
});
});
</script>[/javascript]