|
|
|
|
Bonjour,
je cherche a récupérer le résultat d'une fonction en javascript pour le mettre dans une variable PHP.
Ma fonction utilise un "return" qui renvoie une date.
Pour l'afficher a l"écran :
<SCRIPT LANGUAGE="Javascript">document.write(temps_ref())</SCRIPT>
<?php $temps = 1; echo $temps; ?>
Configuration: Windows XP Firefox 3.0.4
J'aurais tendance à penser que la façon dont tu procèdes n'est pas valide: php est un langage serveur et javascript ne l'est pas.
|
Merci de ta réponse
$temps = '<script type="text/javascript">document.write(temps_ref());</script>'; echo $temps; Mais il reste un problème...si je met $temps dans mysql_query() pour l'entrée dans mysql, sa ne marche plus...pourtant la valeur afficher par le echo est bonne ! |
Je suppose que quand on clique sur ton lien, en dehors de l'enregistrement, il se passe quelque chose, non?
if(window.XMLHttpRequest)
{
var htr=new XMLHttpRequest();
}
if(window.ActiveXObject)
{
var htr=new ActiveXObject('Microsoft.XMLHTTP');
}
var url="ton url";
htr.open("GET",url,false);
htr.send(null);
htr.responseText//méthode pour récupérer ce que renvoi ton scripts php appellé par l'url^^ on peut s'en servir pour changer le contenu d'un input, d'un div, ou autre ;)
Ca, c'est un début^^ Les if tests le navigateur utilisé, car tous n'utilisent pas les même méthodes. Ces deux méthodes devraient cependant te permettre de couvrir suffisament de navigateurs^^ Ces if te font créé un objet ajax nommé ici htr, c'est sur lui que tu appliqueras les méthodes qui feront fonctionner ton truc^^ on commence par l'ouvrir: htr.open (méthodeutilisée,adresseappellée,mode) Méthode post ou get^^ j'utilise plus le get parce qu'il ne m'a jamais posé de problèmes^^ l'adresse peut contenir des variables get, d'où l'intérêt du machin ;) le mode, c'est autre chose, mais le laisser en false n'est pas un gros soucis. C'est une question de laisser le script se dérouler ou pas lors de l'appel de l'objet (ou quelque chose dans ce goût là^^) Ensuite, tu envois ton objet: htr.send (qui l'eut cru? :D) j'ai oublié ce qu'on met dedans, je sais plus si c'est la méthode ou l'url, mais je mets toujours null et ça fonctionne très bien comme ça^^ Ce n'est qu'une fois ces étapes passées que tu peux passer à la suite: htr.responseText, qui te renvoi précisément ce que ton script php appellé peut renvoyer (genre un echo de confirmation^^) ATTENTION: dans le script php appellé par ajax, il ne doit pas y avoir de déclaration de doc-type, et il ne faut surtout pas un espace ou un retour à la ligne avant tes balises d'ouverture php (très important). On recommande l'utilisation du header suivant pour que le script affiche correctement les accents au retour: header("Content-Type: text/html; charset=iso-8859-15");
Oublis pas de spécifier l'accès à tes bases de données dans ton nouveau script php, si tu le lui dis pas, t'aura l'impression que ça fonctionne pas^^ Le reste, c'est comme d'hab^^ |
Merci pour ton aide !
<?php
session_start();
mysql_connect("localhost", "root", "");
mysql_select_db("test");
?>
J'ai pas encore fini mon script (c'est pour sa que je ne l'envoie pas entièrement). En gros, son fonctionnement est que lorsque l'on clique sur le lien, alors un compteur dynamique apparait (il est décroissant)a la place du lien. A la fin du compteur, un message et un lien apparaissent. Je veut enregistrer la date dans la BDD, pour que si l'on actualise la page, le compteur ne revienne pas a son point de départ... Tu as peut être raison, utiliser la date a partir de php pourrais simplifier les choses... Pour la méthode en ajax, je ne comprend pas trop son fonctionnement...aurais tu un exemple simple pour ton script ? Mon script du décompte dynamique : var nb;
function compt(nb) // compte a rebourd dynamique
{
if (nb > 1)
{
tm = nb - 1;
}else
{
tm = "fini";
}
document.horloge.display.value=tm;
setTimeout("compt(tm)",1000);
}
Pour l'afficher : <?php $duree = 100; // valeur prit dans le decompte ?> <a href="#" onClick="compt(<?php echo $duree; ?>)">CLIQUEZ</a> |
J'ai un peu de mal à comprendre ton script je t'avouerais^^ (chacun son truc ;) ) tu pourrais le mettre en ligne sur une page d'exemple?
<div><p><form action='' method='post'> Mdp:<input type='text' name='mdp' id='mdp' onkeydown="mdp();" /><br /> <span id='result'></span> </form></p></div> //on associe un évènement à l'input dans lequel on rentre le mdp, là c'est onkeydown. A chaque touche pressée, la fonction mdp() sera déclenchée Javascript: function mdp() {
if(window.XMLHttpRequest)
{
var htr=new XMLHttpRequest();
}
if(window.ActiveXObject)
{
var htr=new ActiveXObject('Microsoft.XMLHTTP');
}
var url="controle.php?mdp"+document.getElementById('mdp').value;
//la variable url contient le nom du fichier qui effectuera le controle, plus une variable get qui contient le mdp transmit dans le champ texte mdp//
htr.open("GET",url,false);
htr.send(null);
//là, c'est notre script php qui prend le relais, je l'écris plus bas^^//
document.getElementById('result').innerHTML=htr.responseText;
//cette dernière partie récupère ce que renvoi le formulaire php et modifie en direct le contenu du span pour apporter la réponse de controle.php//
PHP: controle.php <?php
header("Content-Type: text/html; charset=iso-8859-15");
$mdp=$_GET['mdp']; //on récupère via la méthode GET le mdp transmis en ajax dans l'url
$sql="select mdp,identifiant from comptes where mdp='".$mdp."'";
$query=mysql_query($sql) or die(mysql_error());
echo (mysql_num_rows($query)==1) ? "Votre code a été retrouvé dans la bdd, accès autorisé" : "Mot de passe inconnu";
?>
?> } |
Je vait tenter de t'expliquer au mieux comment fonctionne mon script (j'ai pas de serveur dispo pour le mettre en ligne dsl).
|
Ayé, j'suis passé en mode mononeural :s donc je capte plus que la moitié de ce que je lis^^
|
C, javascript et php sont "relativement semblables", ce qui est pratique pour s'y retrouver :) ce qui l'est moins, ce sont les trucs spécifiques à chaques langages, et j'ai une grosse dent contre javascript, que je trouve plutôt moche à taper^^ donc j'ai un peu de mal avec^^
|