par
Couin » 28 janv. 2020, 18:27
Hellooo
Un petit script pour afficher la playlist précédente ou suivante via 2 boutons qui appellent une fonction sur un évènement "onclick".
La fonction :
Code : Tout sélectionner
function prevnextpl(sens) {
actualdate = document.getElementById('datepl').value;
$.ajax({
type: 'POST',
url: 'returndate.php',
data: { date:actualdate, sens:sens },
success: function(data){
returndate = data;
changepl(returndate);
document.getElementById('datepl').value = returndate;
}
});
}
On récupère la date de playlist actuelle (celle affichée), on appelle une page returndate.php avec des données envoyées en POST : la date actuelle et le sens (si playlist précédente ou suivante).
La page php regarde dans la base de données, quelle est la date précédente ou suivante, et retourne la nouvelle date.
Avec la nouvelle date, on change de playlist via une autre fonction, donc le paramètre est la date voulue.
Et on met à jour la date actuelle avec la nouvelle date.
Problème, cela ne fonctionne pas.
En cherchant et en jouant sur divers "echo" et "alert", j'ai fini par constater qu'un espace se glisse en premier.
Si je fais
et que dans la page php générant la playlist pour la fonction changepl(), je mets un écho de la date qui lui est envoyée, je vois affiché par exemple ceci :
poc 2020-01-12
au lieu de
poc2020-01-12
Voici le code php qui génère le returndate :
Code : Tout sélectionner
<? $date = $_POST['date'];
$sens = $_POST['sens'];
$returndate = date('Y-m-d',strtotime($date . $sens." 1 week"));
require 'readconfig.php';
if ($sens == '-') {
$sql = "SELECT datepl FROM `playlist`
WHERE datepl <= '$returndate'
ORDER BY datepl DESC LIMIT 1";
} else {
$sql = "SELECT datepl FROM `playlist`
WHERE datepl >= '$returndate'
ORDER BY datepl ASC LIMIT 1";
}
$requete = mysql_query( $sql ) ;
while( $result = mysql_fetch_object( $requete ) )
{
$returndate = $result->datepl;
}
echo $returndate;?>
Alors bien sur, je peux tricher en mettant un trim sur le data de retour Ajax (
returndate = data.trim(); ) et ca fonctionne mais j'aimerais comprendre d'où sort cet espace .
si quelqu'un a une idée

Merkouiiiin
Hellooo :)
Un petit script pour afficher la playlist précédente ou suivante via 2 boutons qui appellent une fonction sur un évènement "onclick".
La fonction :
[code]
function prevnextpl(sens) {
actualdate = document.getElementById('datepl').value;
$.ajax({
type: 'POST',
url: 'returndate.php',
data: { date:actualdate, sens:sens },
success: function(data){
returndate = data;
changepl(returndate);
document.getElementById('datepl').value = returndate;
}
});
}[/code]
On récupère la date de playlist actuelle (celle affichée), on appelle une page returndate.php avec des données envoyées en POST : la date actuelle et le sens (si playlist précédente ou suivante).
La page php regarde dans la base de données, quelle est la date précédente ou suivante, et retourne la nouvelle date.
Avec la nouvelle date, on change de playlist via une autre fonction, donc le paramètre est la date voulue.
Et on met à jour la date actuelle avec la nouvelle date.
Problème, cela ne fonctionne pas.
En cherchant et en jouant sur divers "echo" et "alert", j'ai fini par constater qu'un espace se glisse en premier.
Si je fais
[code]returndate = "poc"+data;
changepl(returndate);[/code]et que dans la page php générant la playlist pour la fonction changepl(), je mets un écho de la date qui lui est envoyée, je vois affiché par exemple ceci :
[i]poc 2020-01-12 [/i]
au lieu de
[i]poc2020-01-12[/i]
Voici le code php qui génère le returndate :
[code]<? $date = $_POST['date'];
$sens = $_POST['sens'];
$returndate = date('Y-m-d',strtotime($date . $sens." 1 week"));
require 'readconfig.php';
if ($sens == '-') {
$sql = "SELECT datepl FROM `playlist`
WHERE datepl <= '$returndate'
ORDER BY datepl DESC LIMIT 1";
} else {
$sql = "SELECT datepl FROM `playlist`
WHERE datepl >= '$returndate'
ORDER BY datepl ASC LIMIT 1";
}
$requete = mysql_query( $sql ) ;
while( $result = mysql_fetch_object( $requete ) )
{
$returndate = $result->datepl;
}
echo $returndate;?>[/code]
Alors bien sur, je peux tricher en mettant un trim sur le data de retour Ajax ( [i]returndate = data.trim();[/i] ) et ca fonctionne mais j'aimerais comprendre d'où sort cet espace .
si quelqu'un a une idée :)
Merkouiiiin