Aller au contenu

Récupérer une variable JS vers du Php, plusieurs fois


francoisch

Sujets conseillés

Bonjour

Jutilise dans une page cette séquence de code pour plusieurs passages successifs :

la variable compteur1 est initialisée dans du code Javascript

sa valeur est récupérée dans la variable $compteur1 en Php par ce code :


if (isset($_GET['compteur1']) == false)
{
echo "<script type=\"text/javascript\">\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"."&compteur1=\" + compteur1;\n";
echo "</script>\n";
exit();
}

que javais trouvé dans un Forum.

Problème : ça ne fonctionne correctement quau premier passage.

En effet, lUrl reste identique aux passages suivants et la valeur retrouvée dans $compteur1 est toujours la même.

J'ai essayé de supprimer la boucle du if / isset, mais justement, ça boucle.

Merci par avance de vos suggestions.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Si tu nous disais ce que tu cherches à faire exactement, on pourrait probablement te proposer une solution, parce que là c'est quand même bizarre, le code que tu donnes ne récupère rien du tout, mais force l'existence de la variable compteur1, mais qui ne contient rien. Il manque des bouts, et le but n'est pas trop clair...

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Si tu nous disais ce que tu cherches à faire exactement, on pourrait probablement te proposer une solution, parce que là c'est quand même bizarre, le code que tu donnes ne récupère rien du tout, mais force l'existence de la variable compteur1, mais qui ne contient rien. Il manque des bouts, et le but n'est pas trop clair...

Jacques.

Bonjour,

Je suis du même avis que jcaron, je pense que si tu nous disais ce que tu veux faire il y aurait surement moyen de ne pas passer par ce bout de code javascript/PHP un peu tiré par les cheveux au profit de quelque chose de plus propre :rolleyes:

Si tu retires ton if c'est normal qu'il boucle puisque le script semble se ressoumetre lui même indéfiniement...

Lien vers le commentaire
Partager sur d’autres sites

bonjour

L'objectif général d'abord: n'afficher dans une page Web un bouton pour appeler un logiciel que s'il est installé sur le PC.

Ma fonction de test de la présence éventuelle d'un logiciel:


function test_prog(exec)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var ret=fso.FileExists(exec);
fso=null;
return ret;
}

(je ferai volontiers la même chose en Php si c'est possible).

J'utilise cette fonction ici:


<script type="text/JavaScript">
var compteur1 = 0;
if (test_prog("<?php echo $adresse; ?>"))
{
compteur1 = 1; // si le logiciel est détecté
}
</script>
<?php
// ***** récupération en Php du résultat du test
if (isset($_GET['compteur1']) == false)
{
echo "<script type=\"text/javascript\">\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"."&compteur1=\" + compteur1;\n";
echo "</script>\n";
exit();
}
// ***** affichage du bouton
if ($compteur1 > 0 )
{
?>
<td align="center" width="<?php echo $pctbureautique ; ?>%">
<button type="button" onclick=" ....</button>
</td>

Voila, vous savez tout ou presque; j'utilise ce code plusieurs fois dans la même page pour détecter plusieurs logiciels.

Cette récupération de variable JS fonctionne bien au premier passage mais plus ensuite aux passages suivants.

A votre avis? Merci par avance de votre aide.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Je te propose une méthode tellement plus simple:

- tu fais une première page qui grosso-modo ne contient que du JS: tu vérifies la présence des fichiers qui vont bien, puis à la fin quoi qu'il arrive tu fais un redirect vers la deuxième page, en passant en paramètre les fichiers trouvés ou pas

- et une deuxième page qui récupère ces paramètres, et voilà.

Je pense que ce sera nettement plus simple à coder et à maintenir, sans se mélanger les pinceaux entre php et JS. En fait ton code met les deux pages sur une seule (la différence étant la présence ou non de la variable), mais ça n'a à mon avis qu'un intérêt limité, et ça complique le code pour pas grand chose.

Si tu veux vraiment garder cette structure de code, il faut juste que tu testes l'ensemble de tes variables d'un coup et que tu les passes d'un coup, pas besoin de faire 150 redirects en ajoutant un petit bout à chaque fois.

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Vous avez surement raison.

Simplement, j'avais une page existante, avec du code existant, et j'ai gréfé là-dessus un nouveau morceau de code sans remettre en question ce qui existait déjà.

Oui, je vais retravailler tout ça pour éliminer le Php de l'histoire.

Je vous dirai le résultat.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...