Page 1 sur 1
fonction javascript et php
Posté : 14 juin 2005, 08:30
par donny
salut,
J'ai un formulaire avec listes deroulante et je voudrais si il est possible de faire une fonction javascript qui au click sur un bouton selectionne la premiere valeur de la liste mais aussi vide mes variable de sessions ???
Merci
Posté : 14 juin 2005, 09:24
par zeus
Encore une fois,
PHP est un langage serveur
Javascript est un langage client
Quand le Javascript est exécuté, tu n'est plus sur le serveur et tu ne peux plus agir sur des variables PHP sans repasser par le serveur
Si tu veux effacer des variables de sessions, en JS, tu doit réexécuter un script PHP qui va effacer tes variables de sessions
Posté : 14 juin 2005, 09:36
par tanky
comme tu le dis, c'est du javascript donc t es pas dans le bon forum ... sinon la solution c'est le remote scripting. cf.
http://developer.apple.com/internet/web ... frame.html
Posté : 14 juin 2005, 09:56
par donny
Quand le Javascript est exécuté, tu n'est plus sur le serveur et tu ne peux plus agir sur des variables PHP sans repasser par le serveur
ok
donc je dois faire un bouton pour vider les variable de sessions et un autre pour selectionner le premiere index de ma liste
Posté : 14 juin 2005, 10:08
par zeus
Comme tu veux
Mais ce qu'il faut bien que tu gardes à l'esprit qu'il va falloir chargé un script PHP pour effacer tes variables de sessions
Posté : 14 juin 2005, 10:30
par zeus
Je crois que tu n'as pas compris ce que j'essaye de te dire.
Dans ta feuille, ton bouton doit rediriger vers une AUTRE page qui elle, va effacer tes variables de sessions.
Le test sur le bouton GET est fait AVANT l'affichage de la page et UNIQUEMENT avant.
C'est donc normal que quand tu clique sur le bouton qui ne fait que appeller une fonction JS, le code PHP ne soit pas interpreté
Posté : 14 juin 2005, 10:34
par donny
j ai fait cela
<input type="submit" name="zz" value="zz" OnClick="javascript:zero()">
<? if(isset($_POST['zz']))
{
unset($_SESSION['fam']);
unset($_SESSION['marque']);
}
echo "<h1>".$_SESSION['fam']."</h1>";
echo "<h1>".$_SESSION['marque']."</h1>";
?>
mais le truc que je pige pas, c est qu il faut que je clique 2 fois sur le bouton pour que sa marche.
Quand je clique une fois sa efface la variable de session et la 2eme fois sa selectionne le 1ere element de la liste et je pige pas trop le pourquoi du comment ?
Posté : 14 juin 2005, 10:39
par zeus
Franchement donny, je crois que tu te paye ma tête
Je te donne des voies d'approndissement et toi, tu fait comme si je disais rien
Dernier avertissement
Est-ce que le code que tu me donnes est dans la même page ? quel est le code de ta fonction JS ?
C'est pas normal que ça fonctionne
Posté : 14 juin 2005, 10:46
par donny
J ai fait cela et sa marche.
Je me pai pas ta tete je veux tout faire sur la meme page et pas passer par une page intermediare.
Sa fonctionne car j execute d abord le php sur le serveur et ensuite le javascript sur le client c est bien cela ?
<input type="submit" name="zz" value="zz" >
<? if(isset($_POST['zz']))
{
unset($_SESSION['fam']);
unset($_SESSION['marque']);
echo "<script>javascript:zero();</script>";
}
echo "<h1>".$_SESSION['fam']."</h1>";
echo "<h1>".$_SESSION['marque']."</h1>";
?>
Posté : 14 juin 2005, 10:55
par zeus
Dans le code que tu m'a donné, tu vas effacer tes variables de sessions uniquement si lors du chargement de la page tu as la variable POST["zzz"] qui existe !!!
Mais le fait d'appuyer sur le bouton ne vas pas enclencher le passage par le test PHP
si tu veut faire ce que tu attends, il te faut un truc du genre
<form method="POST" action="page_actuelle.php">
<input type="submit" name="zz" value="zz" >
<? if(isset($_POST['zz']))
{
unset($_SESSION['fam']);
unset($_SESSION['marque']);
echo "<script>javascript:zero();</script>";
}
echo "<h1>".$_SESSION['fam']."</h1>";
echo "<h1>".$_SESSION['marque']."</h1>";
?>
</form>
Mais pour exécuter ton code PHP à chaque fois que tu clique sur le bouton, tu es OBLIGE de repasser sur le serveur vu que c'est là que s'exécute le PHP avant de réafficher ta page
Posté : 14 juin 2005, 11:00
par donny
ouai
j ai sa
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" name="rech" method="post">
Posté : 14 juin 2005, 11:21
par zeus
Alors là, c'est bon, ca explique pourquoi ça fonctionne
Et tu as encore un problème ? de quelle sorte ? qu'est-ce que tu voudrais ?
Posté : 14 juin 2005, 11:38
par donny
nan j ai plus de probleme
mais c est clair que defois j oubli la distinction client serveur
ou je ne la vois pas
Merci
Posté : 14 juin 2005, 11:39
par zeus
Un petit [RESOLU]
