javascript: problème avec des chaines qui contiennent du php - HTML/CSS - Programmation
Marsh Posté le 07-03-2008 à 09:24:24
etape1: apprendre la différence entre client(js) et serveur(php dans ton cas).
Marsh Posté le 07-03-2008 à 10:40:43
j'entends tres bien la différence entre un script qui tourne chez le client et un script qui tourne sur le serveur, ce dernier produisant du code html que le serveur web retransmet, ce code produit venant remplacer les instructions du script php dans le document final qui est produit chez le client au navigateur
donc je veux chez le client avoir un javascript qui tourne, qui a un moment produit une variable i demande au serveur php d'executer sur le serveur un petit script qui est
<? global $cvm; $cvm=3; include("toto.php" ); ?> mais je veux un traitement php dans toto.php different suivant ce i alors que la c'est figé à 3
qui produit sur la sortie standard des balaises html et qui viendront s'affecter a la variable javascript chaine chez le client
je sais que qu'on peut passer des variables de l'un à l'autre par des cookies, dans les urls, par post aussi (qui m'interresserait) et peut encdore d'autres facons...
comme je l'ai ecrit en A en utilisant des varaibles globales est ce que il y a un moyen de construire un chaine javascript et que javascript sache ensuite reconnaitre cette chaine comme un script php dont il faut en attendre le resultat, exactement comme il sait le faire en A? ou pas
j'ai essayé par ailleurs pas mal de choses avec $_POST, mais visiblement cette variable Serveur php ne se remplirait que si je mets une methode submit()
(tu me confirmes que c'est bien une condition our qu'elle se remplisse?) quelque part dans mon script javascript et des que je la mets la partie javascript produit un resultat html pas trop comme je l'attends et en plus j'ai l'impression qu'il me recharge toute la page
est ce que submit() recharge en generale toute la page? ou je dois immaginer que c'est mon script javascript qui le fait alors que c'est pas ce que je souhaitais?
Marsh Posté le 07-03-2008 à 10:44:54
tintin34 a écrit : j'entends tres bien la différence entre un script qui tourne chez le client et un script qui tourne sur le serveur |
Ben non ! La preuve !
Bon, je te mets sur la voie : il faut que tu envoie une requête HTTP au serveur, éventuellement en utilisant XML
Et révise cette notion de client / serveur dans une application web !
Marsh Posté le 07-03-2008 à 11:12:10
ok merci bien je vais regarder pour envoyer une requette http
j'avais vu des exemples ainsi mais j'etais pas trop sûr que c'etait ca qui etait derriere
je pense que ton indication m'a mis sur la voie
Marsh Posté le 07-03-2008 à 01:13:37
Bonjour,
j'ai simplifier un probleme que je rencontre de la facon suivante:
dans un script javascript, je fais les 3 essais suivant qui se terminent tous par document.write(chaine);:
A)
var chaine="";
var i=4;
chaine = '<? global $cvm; $cvm=3; include("toto.php" ); ?>
le resultat correspond aux differents echo qui se trouvent dans toto.php qui viennent se substituer a la chaine,mais $cvm vaut toujours 3 normal, c'est ce qui est ecrit, (Moi je voudrais faire exactement ca mais mettre la valeur de i à la place de 3)
B)
var chaine="";
var i=4;
chaine = '<? global $cvm; $cvm='+choi+'; include("toto.php" ); ?>';
le resultat: il y a bien maintenant $cvm=la_valeur_de_i mais maintenant a cause de < et ≶ l'expression contenue entre <? ?> est plus évaluée
C)
var chaine="";
var tmp="";
var chaineb="";
var i=4;
tmp = "chaineb = '<? global $cvm; $cvm='+choi+'; include("met205.php" ); ?>'";
eval(tmp);
chaine=chaineb;
le resultat: il n'y en a pas, ca plante surement du a une erreur de syntaxe, car le script ne va pas au bout et c'est signe souvant d'une erreur de syntaxe
Donc ma question etait dans la paranthèse du A je veux faire les 3 instructions php comprises entre
les <? et ?> et que le resulat php soit affecté à chaine, mais pouvoir mettre dans $cvm, la valeur de la variable javascript i; comment je eux y arriver? pourquoi ca fonctionne pas entre autre avec eval?
Si tu lis ce message FlorentG je pense que tu dois savoir me dire comment faire, mais je suis prenneur de toutes les bonnes suggestions
merci par avance aux gens qui me repondront de ce probleme