Passer variable PHP en argument d'une fonction JS
Bonjour à tous,
Tout d'abord, sachez que j'ai écumé les forums, vu des tas des sujets à ce propos, mais aucune des solutions ne fonctionne pour mon cas, et je ne saisis pas pourquoi. En désespoir de cause, je crée un nouveau topic.
J'aimerais passer deux variables de sessions (login et password) à une page, lors d'un clic sur un lien.
Voici mon code avec le lien:
Code:
<li><span class="grr_dijon"></span><a href="grr/planning_dijon/login.php" onClick="openWithPostData('grr/planning_dijon/login.php','<?php echo $coupleUsrPwd; ?>')">GRR Dijon</a></li>
Ou $coupleUsrPwd est une simple chaine de caractère dans laquelle j'ai concaténée les identifiants.
Puis ma fonction JS :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function openWithPostData(page,data)
{
var posSeparateur = data.indexOf(':');
var password = data.substr(posSeparateur, data.length);
var login = // ici mon traitement pour récuperer le login
alert(password);
tab[0]=password;
tab[1]=login;
/* le traitement des chaines n'est pas fini, mais jai testé en envoyant la chaine en dur */
var n = 0;
var form = document.createElement('form');
form.setAttribute('action', page);
form.setAttribute('method', 'post');
for (n in tab)
{
var inputvar = document.createElement('input');
inputvar.setAttribute('type', 'hidden');
inputvar.setAttribute('name', 'pdata'+n);
inputvar.setAttribute('value', tab[n]);
form.appendChild(inputvar);
}
document.body.appendChild(form);
form.submit();
} |
En résumé, j'ai joué avec les ", ' et les \ pour tenter des faire passer cette variable PHP : rien à faire ! Des fois la page s'ouvre, mais les données POST ne sont pas transmises, des fois la page ne s'ouvre pas car la syntaxe est fausse ...
quelqu'un aurait-il une piste au niveau de la syntaxe à utiliser ?
je vous remercie d'avance !
Cdt,
Vespiras
Désolé, c'est plus du JS, mais c'est dans la suite de mon probleme
Bonjour à tous,
En fait mon problème n'est pas vraiment résolu, je me suis rendu compte qu'en vidant le cache, dès la connexion sur mon site, les variables de sessions que j'utilise dans mon scripts ne sont pas définies :oops:
Et je ne comprend pas pourquoi selon le code que j'ai.
1- Si l'utilisateur n'est pas loggé, on affiche le formulaire de connexion
2- Si l'utilisateur entre ses identifiants, je vais faire un traitement et les comparer dans un annuaire LDAP.
3- Si ça match, je démarre la session, je copie les identifiants dans les variables de session 'login' et 'password' et je cache le formulaire.
4- Une fois loggé, si l'utilisateur clique sur mon lien qui appelle openWithPostData(), il me dit que les deux variables ne sont pas définies.
Pourtant, dès le chargement de la page index.php après le submit du formulaire, je peux afficher a ma guise les variables de session, c'est du délire !
Les quelques lignes de code concernées, au cas ou :
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?php
if(!isset($_POST["login"]) && !isset($_POST["password"])) // si on vient d'arriver sur la page
{
include("login.php");
}
if(isset($_POST["login"]) && isset($_POST["password"])) // si on est loggé
{
echo("<div class='user_frame' >");
include("portail.php");
include("user_ok.php"); ?> |
Le login.php est un simple formulaire dont l'action est le chargement de index.php.
Et portail.php:
Code:
1 2 3 4 5 6 7
| <?php
if($connexion_user=@ldap_bind($connexion_serveur, $user_ou, $passwd)) //on se lie, renvoie une valeur !NULL si user authentifié dans LDAP
{
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
?> |
Et il faut que je conserve le cache, et que je recharge index, pour que mes variables de sessions soient prises en compte dans ma fonction Js.
Quelqu'un a-t'il une idée d'ou cela provient ? 8O
Un grand merci !