cs_destiny
Messages postés249Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention29 août 2011
-
30 sept. 2008 à 16:29
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
1 oct. 2008 à 11:59
Bonjour,
Avec XMLHttpRequest, j'effectue un traitement PHP assez conscéquent (environ 2/3s). Dans ma fonction ci-dessous, j'ai mis des tests qui normalement attente que la requete php soit terminé avant de passer les IF.
//Envoie des données
function sendData(method, url, data) {
var xmlhttp = initXhrObj();
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 oct. 2008 à 08:51
bonjour,
à priori ça doit baigner ce que tu fais....
je crois qu'il vaut mieux mettre la fonction avant le send.... mais bon....
xml.onreadystatechange=function()
{ if ( xml.readyState == 4 )
{ if ( xml.status == 200 )
.... tout est ok, c'est reçu
...
xml.open( post ou get , url, true );
...
xml.send(paramètres);
ch'tiote remarque :
eval(xmlhttp.responseText);
donc le php renvoie du javascript ET UNIQUEMENT du javascript
sinon, ça plante.
et pourquoi ne pas mettre ce javascript dans la page directement ?
ça éviterait au moins un échange avec le serveur et l'EVAL qui est très gourmand ...
cs_destiny
Messages postés249Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention29 août 2011 1 oct. 2008 à 10:15
Ben en faite,
Je vais vous expliquez ce que je fais pour un meilleur compréhension. J'ai un question a plusieurs étape. Suivant les reponses, les etapes peuvent être differentes (je ne pas stoker le formulaire en cache) et recharger la page a chaque étape est tros lent (tout le questionnaire est en base de données avec des contitions à eval, etc un truc de porc). C'est pourquoi grace au XMLHttpRequest, sans rechargement de page, je n'ai pas besion de recalculer les étapes deja saisie et recuperer uniquement l'étape que je vuex.
Je renvoie une variable avec le questionnaire de l'étape concerné en html. mais ya rien a faire, il passe dans l'eval avant meme que la génération php de la var js ne soit terminé.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 oct. 2008 à 10:35
certes, certes.... et ajax est là pour ça
( communication js <=> serveur sans réafficher la page ! )
ma remarque était uniquement sur eval.... qui ne fonctionnera
que si le php retourne du javascript, et uniquement du javascript
pas de html ( ou alors il faut d'abord l'extraire
regarde comment font ce qu'on appelle framework ou même GAG ici )
généralement, rapatrier du js ne sert strictement à rien,
il suffit de le mettre dans la page appelante. point barre.
de plus en plus d'ailleurs, on voit utiliser ajax pour réinventer une
communication normale entre js et le serveur ( formulaire.... )
c'est pas fait pour ça. ajax ne devrait en principe ne renvoyer
que des données... qui seront réexploiter par javascript.
>>avec le questionnaire de l'étape concerné en html. mais ya rien a
faire,
>>il passe dans l'eval avant meme que la génération php de la var
js ne soit terminé.
je ne pense pas. je n'ai pas contrôler ta séquence, mais respecte mon exemple
ET SURTOUT PAS d'EVAL sur du HTML ! ça plante !
il faut du javascript pur !