Passer une variable tableau dans fonction JS
beudet
Messages postés
128
Statut
Membre
-
gigaga Messages postés 2347 Date d'inscription Statut Membre Dernière intervention -
gigaga Messages postés 2347 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite passer en pramamètre un tableau qui contient des données de type chaine de caractère en PHP dans une fonction JS. Pour le moment quand je fait un alert cela me marque array si je passe ma variable de cette facon <$php echo $fichier ?> et undefined si je la passe comme sa <?php $fichier ?> .
mon code PHP :
$j=0;
$mydir = "../upload/".$prenom.".".$nom."/".$titre."/";
if ($dir = @opendir($mydir))
{
while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$j = $j+1;
$filelist[] = $file;
}
}
closedir($dir);
}
$lien="../upload/$prenom.$nom/$titre/";
$fichier=$filelist;
<input type="image" title="lecture"value="Fenetre" src="../img/lecture.png" onclick="creer_fenetre(400,400,300,500,'<?php echo $titre; ?>','<?php echo $text; ?>','<?php echo $lien; ?>','<?php $fichier; ?>')" />
script js
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(lien);
alert(fichier[0]);
Voila comment récupérer mon tableau $fichier.
Merci
Je souhaite passer en pramamètre un tableau qui contient des données de type chaine de caractère en PHP dans une fonction JS. Pour le moment quand je fait un alert cela me marque array si je passe ma variable de cette facon <$php echo $fichier ?> et undefined si je la passe comme sa <?php $fichier ?> .
mon code PHP :
$j=0;
$mydir = "../upload/".$prenom.".".$nom."/".$titre."/";
if ($dir = @opendir($mydir))
{
while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$j = $j+1;
$filelist[] = $file;
}
}
closedir($dir);
}
$lien="../upload/$prenom.$nom/$titre/";
$fichier=$filelist;
<input type="image" title="lecture"value="Fenetre" src="../img/lecture.png" onclick="creer_fenetre(400,400,300,500,'<?php echo $titre; ?>','<?php echo $text; ?>','<?php echo $lien; ?>','<?php $fichier; ?>')" />
script js
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(lien);
alert(fichier[0]);
Voila comment récupérer mon tableau $fichier.
Merci
A voir également:
- Passer une variable tableau dans fonction JS
- Tableau word - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
7 réponses
Non je ne peut pas. Je souhaite passer tout le tableau avec toute les valeurs dans la fonction JS. Et seulement dans la fonction JS récup toute les valeurs avec une boucle for.
Ce n'est pas possible... Tu ne peux pas mélanger des variables coté serveur et des variables coté client.
Les variables javascript doivent être initialisés coté client, il faut donc que ce soit php qui écrive le code que le client pourra interpréter... Si tu as un tableau en php, alors pourque js utilise ce tableau, il faut que php écrive le code d'initialisation de ce tableau js :
var MonTableau = new Array();
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "MonTableau[".$i."] = \"".$fichier[$i]."\";";
}
?>
A ce stade, tu as un tableau js initialisé à partir d'un tableau php.
Les variables javascript doivent être initialisés coté client, il faut donc que ce soit php qui écrive le code que le client pourra interpréter... Si tu as un tableau en php, alors pourque js utilise ce tableau, il faut que php écrive le code d'initialisation de ce tableau js :
var MonTableau = new Array();
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "MonTableau[".$i."] = \"".$fichier[$i]."\";";
}
?>
A ce stade, tu as un tableau js initialisé à partir d'un tableau php.
Oula je me sens un peut perdu ^^
var MonTableau = new Array(); je le créer dans ma fonction JS creer_fenetre() ?
et
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "MonTableau[".$i."] = \"".$fichier[$i]."\";";
}
?>
c'est du php. Je comprend pas comment veus tu que je récupère les valeurs dans ma fonction JS.
var MonTableau = new Array(); je le créer dans ma fonction JS creer_fenetre() ?
et
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "MonTableau[".$i."] = \"".$fichier[$i]."\";";
}
?>
c'est du php. Je comprend pas comment veus tu que je récupère les valeurs dans ma fonction JS.
Exemple:
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "<input type=\"image\" title=\"lecture\" value=\"Fenetre\" src=\"../img/lecture.png\" onclick=\"creer_fenetre(400,400,300,500,'".$titre."','".$text."','".$lien."', '".$fichier[$i]."')\"/>";
}
?>
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(lien);
alert(fichier);
}
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "<input type=\"image\" title=\"lecture\" value=\"Fenetre\" src=\"../img/lecture.png\" onclick=\"creer_fenetre(400,400,300,500,'".$titre."','".$text."','".$lien."', '".$fichier[$i]."')\"/>";
}
?>
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(lien);
alert(fichier);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah oui d'accord.
Le problème c'est que je clique sur mon bouton input et il m'affiche une fenetre type webOS en dynamique ou j'affiche le titre de l'article, le corp du message et les fichiers qu'il a uploader.
Le problème avec ta technique c'est que je me retrouve avec 3 bouton input si la personne à partager 3 fichiers et pour chaque bouton sa ne m'affichera qu'un lien dans ma fenetre JS. C'est pour sa qu'il faut que je récupère toute les valeurs du tableau PHP dans ma fonction JS en une seule fois pour pouvoir afficher tout les liens de tout les fichier uploader par la personne qui a écrit l'article.
Je c'est pas si je suis très clair :s
Le problème c'est que je clique sur mon bouton input et il m'affiche une fenetre type webOS en dynamique ou j'affiche le titre de l'article, le corp du message et les fichiers qu'il a uploader.
Le problème avec ta technique c'est que je me retrouve avec 3 bouton input si la personne à partager 3 fichiers et pour chaque bouton sa ne m'affichera qu'un lien dans ma fenetre JS. C'est pour sa qu'il faut que je récupère toute les valeurs du tableau PHP dans ma fonction JS en une seule fois pour pouvoir afficher tout les liens de tout les fichier uploader par la personne qui a écrit l'article.
Je c'est pas si je suis très clair :s
dans ce cas :
<?
echo "<input type=\"image\" title=\"lecture\" value=\"Fenetre\" src=\"../img/lecture.png\" onclick=\"creer_fenetre(400,400,300,500,'".$titre."','".$text."','".$lien."')\"/>";
?>
function creer_fenetre(left,top,width,height,titre,texte,lien) {
alert(lien);
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "alert('".$fichier[$i]."');";
}
?>
}
<?
echo "<input type=\"image\" title=\"lecture\" value=\"Fenetre\" src=\"../img/lecture.png\" onclick=\"creer_fenetre(400,400,300,500,'".$titre."','".$text."','".$lien."')\"/>";
?>
function creer_fenetre(left,top,width,height,titre,texte,lien) {
alert(lien);
<?
for ($i=0;$i<sizeof($fichier);$i++) {
echo "alert('".$fichier[$i]."');";
}
?>
}
Je vien de regarder ce que tu ma proposé gigaga, mais ma fonction creer_fenetre est une fonction javas script, je peut pas intégrer de php dedans.