Un espace en trop sur retour Ajax ?
Posté : 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 :
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 faiset 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 :
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
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;
}
});
}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 : Tout sélectionner
returndate = "poc"+data;
changepl(returndate);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;?>si quelqu'un a une idée
Merkouiiiin