Adresse mail dans une array
Résolu/Fermé
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
-
26 mars 2015 à 15:33
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 27 mars 2015 à 14:37
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 27 mars 2015 à 14:37
Bonjour, sur mon site j'effectue une requête sql qui doit me renvoyer des adresses mails d'utilisateur. Et ensuite j'aimerais traiter cette liste en javascript.
Alors je sais comment remplir une liste javascript avec les valeurs de l'array php, seulement il y a une erreur ( unexpected token ILLEGAL).
Dans ma liste javascript j'ai des trucs du genre Bonhomme@hotmail.fr
Personne@hotmail.com
Et je pense que c'est les points qui le dérange car il doit l'interpréter comme un int.
Mais du coup je ne vois pas vraiment comment faire. J'essaye de bidouiller avec des "toString()" ou des "strval()"mais ça ne fonctionne pas...
Auriez vous une idée ?
Merci d'avance !
Alors je sais comment remplir une liste javascript avec les valeurs de l'array php, seulement il y a une erreur ( unexpected token ILLEGAL).
Dans ma liste javascript j'ai des trucs du genre Bonhomme@hotmail.fr
Personne@hotmail.com
Et je pense que c'est les points qui le dérange car il doit l'interpréter comme un int.
Mais du coup je ne vois pas vraiment comment faire. J'essaye de bidouiller avec des "toString()" ou des "strval()"mais ça ne fonctionne pas...
Auriez vous une idée ?
Merci d'avance !
A voir également:
- Adresse mail dans une array
- Darkino nouvelle adresse - Guide
- Yahoo mail - Accueil - Mail
- Créer une adresse mail hotmail - Guide
- Adresse mac - Guide
- Localiser une adresse mail gratuitement - Guide
5 réponses
Utilisateur anonyme
26 mars 2015 à 15:57
26 mars 2015 à 15:57
Bonjour
Ça m'étonnerait beaucoup que php prenne le point d'une adresse mail pour un point décimal.
Je pense plutôt qu'il te manque des guillemets autour de tes chaînes, ou que tu imbriques mal les ' et les ", mais on ne peut pas savoir sans avoir ton code.
L'erreur que tu as est-elle une erreur php ou javascript ? Peux-tu recopier le message d'erreur complet et donner le morceau de code où tu prépares en PHP tes données pour le javascript.
Ça m'étonnerait beaucoup que php prenne le point d'une adresse mail pour un point décimal.
Je pense plutôt qu'il te manque des guillemets autour de tes chaînes, ou que tu imbriques mal les ' et les ", mais on ne peut pas savoir sans avoir ton code.
L'erreur que tu as est-elle une erreur php ou javascript ? Peux-tu recopier le message d'erreur complet et donner le morceau de code où tu prépares en PHP tes données pour le javascript.
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
6
26 mars 2015 à 19:30
26 mars 2015 à 19:30
Oui alors voilà mon code le plus simple qui ne fonctionne pas :
Et alors l'erreur est au niveau JS (visible uniquement dans la console).
Tout ce qu'il y a de marqué c'est :
Uncaught SyntaxError: Unexpected token ILLEGAL
Et l'erreur est sur la ligne :
echo 'var list = new Array('.implode(',', $liste).');';
Donc je vois dans la console que l'array list est remplie dans le javascript. Mais dans les adresses mail il y a des chiffres, des lettres, des points.
Et je soupçonne JS de prendre les points pour une virgule de nombre décimal, et comme avant et après le point, ce n'est pas comparable à un int, ça plante...
Mais je laisse l'expert me donner son diagnostic, c'est pour cela que je suis là !
<?php
$liste = array();
$listeFinal = array();
$req = $bdd->query('SELECT * FROM medias');
while($donnees = $req->fetch())
{
if($donnees['Image'] == 1)
{
array_push($liste, $donnees['Media']);
}
else
{
array_push($liste, $donnees['Media']);
}
}
?>
<script language="javascript">
<?php
echo 'var list = new Array('.implode(',', $liste).');';
?>
</script>
Et alors l'erreur est au niveau JS (visible uniquement dans la console).
Tout ce qu'il y a de marqué c'est :
Uncaught SyntaxError: Unexpected token ILLEGAL
Et l'erreur est sur la ligne :
echo 'var list = new Array('.implode(',', $liste).');';
Donc je vois dans la console que l'array list est remplie dans le javascript. Mais dans les adresses mail il y a des chiffres, des lettres, des points.
Et je soupçonne JS de prendre les points pour une virgule de nombre décimal, et comme avant et après le point, ce n'est pas comparable à un int, ça plante...
Mais je laisse l'expert me donner son diagnostic, c'est pour cela que je suis là !
jordane45
Messages postés
38451
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 mars 2025
4 739
Modifié par jordane45 le 26/03/2015 à 20:22
Modifié par jordane45 le 26/03/2015 à 20:22
Bonjour,
Selon moi ...pour passer un ARRAY PHP à du javascript il est préférable de le passer en JSON
comme ceci :
Et pour convertir le json en array , tu peux faire quelque chose du genre
Cordialement,
Jordane
Selon moi ...pour passer un ARRAY PHP à du javascript il est préférable de le passer en JSON
comme ceci :
var var list=<?php echo json_encode($liste)?>;
Et pour convertir le json en array , tu peux faire quelque chose du genre
var arr = Object.keys(list).map(function(k) { return o[k] });
Cordialement,
Jordane
Utilisateur anonyme
26 mars 2015 à 23:43
26 mars 2015 à 23:43
Jordane a raison, l'utilisation de JSON est certainement préférable. Si tu as encodé un simple array dans le PHP, tu récupères directement un array dans le javascript, il n'y a même pas besoin du décodage donné par jordane.
Pour l'explication de ton erreur, il te manque effectivement des " autour des valeurs dans ton array javascript
Actuellement, si ta liste contient truc et chose, tu génères
var list = new Array(truc,chose); au lieu de
var list = new Array("truc","chose") ;
Tu dois d'ailleurs le voir dans la console.
Tu aurais dû écrire
Mais utilise plutôt json.
Pour l'explication de ton erreur, il te manque effectivement des " autour des valeurs dans ton array javascript
Actuellement, si ta liste contient truc et chose, tu génères
var list = new Array(truc,chose); au lieu de
var list = new Array("truc","chose") ;
Tu dois d'ailleurs le voir dans la console.
Tu aurais dû écrire
echo 'var list = new Array("'.implode('","', $liste).'");';
Mais utilise plutôt json.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
6
27 mars 2015 à 14:37
27 mars 2015 à 14:37
Oui effectivement, avec JSON je n'ai plus d'erreurs !
Merci beaucoup !
Merci beaucoup !