Variable Javascript

Résolu/Fermé
nicolas - 27 mai 2008 à 17:56
 nicolas - 28 mai 2008 à 09:48
Bonjour,

Je débute en Javascript et j'ai un problème au niveau de la réutilisation d'une variable passée en commentaire de ma fonction.

En gros, j'ai une fonction php qui affiche la liste de pages enregistrées en base de données.

J'affiche la liste des noms, et à coté de ces noms, je propose les options : modifier et supprimer.

Pour le lien de suppression, le lien me renvoie l'identifiant (id) qui permait la suppression en base de données de ma page, mais passe avant par une fonction de javascript qui permait à l'utilisateur de confirmer son choix :

#Lister_page => afficher ma liste de page ainsi que les options.
public function Lister_Page(){

#ma connexion et ma requête.
$connexion = BD::getConnexion();
$sql = "SELECT * FROM ".DB_PREFIX."page ORDER BY page_id DESC;";

#ma variable html va être renvoyé, et va contenir ce qui sera affiché.
$html = '
<script type="text/javascript">
function confirmer(page_id){
if(confirm("Supprimer?"))
#c'est la que ce situe mon problème (expliqué ci dessous.)
document.location.href="' . BASE_URL . 'private/index.php?a=supprimer_page&id=page_id"
}
</script>
<div id="listePage">';
#boucle qui me permait de lister mes pages.
foreach ($connexion->query($sql) as $row)
{

$html .= '<div><label>' . html_entity_decode($row['page_titre']) . '</label>
<a href="' . BASE_URL . 'private/index.php?a=modif_page&id=' . $row['page_id'] . '">Modifier</a>
-
#le lien supprimer renvoie à ma fonction javascript avec comme paramètre l'id de ma page.
<a href="#" onclick=(confirmer(' . $row['page_id'] . '))>Supprimer</a></div>';
}
$html.='</div>';
$connexion = null;
return $html;
}

L'affichage passe impécablement, et le traitement de suppression aussi (puisque si je ne passe pas par ma fonction javascript, tout passe impécablement.).

Donc, mon problème se situe au niveau de ma redirection :
document.location.href="' . BASE_URL . 'private/index.php?a=supprimer_page&id=page_id"

page_id est censé être le paramêtre de ma fonction.

D'ailleurs, si je fais un alert de celui ci, il m'affiche correctement le paramètre, donc je suppose que c'est le fait de le mettre dans mon lien.
(le BASE_URL est du php qui passe bien, pas de problème de ce coté là.)

Je suis sûr que c'est tout bête, mais je passe à coté.

En vous remerciant de l'attention que vous aurez porté à mon problème,
Nico

4 réponses

JR des cavernes Messages postés 152 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 19 mai 2009 84
27 mai 2008 à 18:39
Justement si tu mets des + elle n'est plus dans les guillemets.

Est-tu sûr d'avoir accès à BASE_URL dans les fonctions javascript ?

essaie ceci et si ça ne marche pas :
document.location.href="http://localhost/ibfa/private/index.php?a=supprimer_page&­id=" + page_id +"";

eh ben je ne vois pas pourquoi......
1
JR des cavernes Messages postés 152 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 19 mai 2009 84
27 mai 2008 à 18:03
L'équivalent de ".$variable." (php) en javascript est " + variable + "

essaie donc de metttre : document.location.href="' . BASE_URL . 'private/index.php?a=supprimer_page&id=" + page_id

PS: je sais pas ce qu'est BASE_URL mais puisque tu dis que c'est pas ça le pb..
0
Mon BASE_URL est une variable chargée par un fichier de configuration qui me permait d'adapter rapidement la racine de mon site pour toutes mes pages.

en source, ça me donne ça : document.location.href="http://localhost/ibfa/private/index.php?a=supprimer_page&id=page_id"

et donc, avec des plus a toutes les sauces, ça ne marche pas non plus.

J'ai l'impression que comme ma variable est dans des " " il ne veut pas me la faire passer.
0
Donc, mon BASE_URL marche bien.

Mon problème se situait à 2 endroits.

Comme tu m'as bien montré, il faut en effet utiliser les +pour indiquer la présence d'une variable et après, le problème était que lorsque j'avais écris mon lien pour une 'utilisation xHTML', j'avais mis & pour convertir mon &.

Par contre, en javascript, le & ne passait pas, il fallait que je mette tout simplement &.

Ce qui donne au final :
document.location.href="' . BASE_URL . 'private/index.php?a=supprimer_page&id="+page_id

Merci JR ;)
0