toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010
-
5 mai 2006 à 11:05
cs_robinou59
Messages postés2Date d'inscriptionvendredi 5 décembre 2008StatutMembreDernière intervention 4 décembre 2010
-
4 déc. 2010 à 14:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_robinou59
Messages postés2Date d'inscriptionvendredi 5 décembre 2008StatutMembreDernière intervention 4 décembre 2010 4 déc. 2010 à 14:47
Bonjour,
Merci pour votre script il ma vraiment aidé mais je me pose tout de même une petite question comment faire pour que les accents s'affiche et non un petit carré a leur place ? Merci d'avance
MissArmande
Messages postés5Date d'inscriptionvendredi 19 mars 2010StatutMembreDernière intervention16 avril 2010 15 avril 2010 à 11:57
Bonjour à tous,
Le code fonctionne très bien, c'est exactement ce dont j'avais besoin, merci Atlante34.
Cependant, en plus d'afficher une page dans une div choisie, j'aimerais faire un scroll automatique vers une ancre de cette page (c'est-à-dire que, dans ma div, l'ancre située dans la page appelée soit en haut du cadre).
En utilisant les propriétés offsetTop et scrollTo, j'arrive presque au résultat voulu, MAIS je bute sur un détail: je n'arrive pas à récupérer l'offsetTop absolu sur la page (en incluant les parents...). Mon ancre se retrouve en haut de ma page, et non pas en haut de ma div.
Je n'arrive pas à integrer la fonction de getOffset incluant les positions des parents, et j'ai essayé par tous les moyens que j'ai pu imaginer avec mes faibles connaissances en js.
Pour l'instant, j'ai le code où j'ai intégré l'offsetTop de mon ancre et un scrollTo cet offset:
function envoieRequeteC(url,id,ancre)
{
var xhr_object = null;
var position = id;
var hauteur = ancre;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function()
{
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
document.getElementById(position).scrollTop = document.getElementById(hauteur).offsetTop;
}
}
// dans le cas du get
xhr_object.send(null);
}
mais je n'arrive pas à intégrer la fonction de calcul d'offsetTop absolu:
function getOffset(obj) {
var offsetTop = obj.offsetTop;
while ((obj = obj.offsetParent )!=null) {
offsetTop += obj.offsetTop;
}
return [offsetTop];
}
ni en appelant la fonction à l'intérieur de ma fonction, ni en l'intégrant directement dans ma fonction.
Quelqu'un peut-il m'aider?
Merci d'avance.
120120
Messages postés5Date d'inscriptionlundi 28 mars 2005StatutMembreDernière intervention 6 janvier 2010 6 janv. 2010 à 06:17
ibaom
Messages postés4Date d'inscriptionmercredi 9 avril 2008StatutMembreDernière intervention 9 janvier 2009 22 sept. 2009 à 17:32
desolé pour le dernier message
quelque chose qui peut interresser des personnes sur cette question:
http://tutorialzine.com/2009/09/simple-ajax-website-jquery/ bon du coup c'est de l'ajax, mais ca permet de garder des élements toujours en place (par exemple un lecteur audio...pour eviter les coupures)
apres ca peut poser des problemes en terme de seo...
ibaom
Messages postés4Date d'inscriptionmercredi 9 avril 2008StatutMembreDernière intervention 9 janvier 2009 20 sept. 2009 à 09:24
Je me permet de reiterer la question de swissikarim à savoir:
"comment garder dans une variable la dernière page que j'ai chargé"
afin de pouvoir faire de retour sur les pages via le navigateur...
j'ai pas trouvé, si quelqu'un a une piste :-)
swissikarim
Messages postés30Date d'inscriptionjeudi 27 août 2009StatutMembreDernière intervention17 février 2011 19 sept. 2009 à 14:54
bonjour tout le monde
la solution pour interpreter javascript dans une page charger dans le div est la suivante:
function envoieRequete(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function (){ if (xhr_object.readyState 4 && xhr_object.status 200){
var c = document.getElementById(position);
c.innerHTML = xhr_object.responseText;
//maintenant que les données reçu on été placé dans la page,
//il faut exécuter toutes les balise script :
var allscript = c.getElementsByTagName('script');
for(var i=0;i< allscript.length;i++){
eval(allscript[i].text);
}
//alert(typeof(une_function_dans_mes_balise_script));//return function
}
}
// dans le cas du get
xhr_object.send(null);
}
swissikarim
Messages postés30Date d'inscriptionjeudi 27 août 2009StatutMembreDernière intervention17 février 2011 10 sept. 2009 à 10:40
bonjour tout le monde
je trouve une grande mauvaise surprise après l'application du code d'ajax à mon code source.
ca le problème:
avant d'appliquer le code ajax à ma page d'accueil tout les importations des scripts de css, javascript ou jquery sa marchent bien et tout les styles fonctionnent comme il faut.
Mais aprés l'ajout du code ajax et lorsque appeler mes pages dans la div content de ma page d'accueil ne fonctionne aucune importation de css ou jquery et ...
svp aider moi pour résoudre ce probléme
merci d'avance
swissikarim
Messages postés30Date d'inscriptionjeudi 27 août 2009StatutMembreDernière intervention17 février 2011 8 sept. 2009 à 14:53
bonjour tout le monde
je trouve cette réponse dans ce forum pour la retour au les pages
précédente mais je peut voir un exemple pour le fait en pratique:
cette réponse existe en haut->
"tout simplement garder dans une variable la dernière page que tu as chargé... .. ."
ma question comment garder dans une variable la dernière page que j'ai chargé
merci d'avance
désolé à la répétition de ce question.
swissikarim
Messages postés30Date d'inscriptionjeudi 27 août 2009StatutMembreDernière intervention17 février 2011 8 sept. 2009 à 14:43
bonjour
merci beaucoup à votre claire réponse.
je trouve un autre probléme:aprés le chargement du contenu de formulaire dans le div un champ de type input qui affiche un calendrier ne marche pas et avant de fait cette fonction d'ajax
il est fonctionné dans son propre page qui contien le formulaire
et sa le code:
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/jscal2.css" />
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/reduce-spacing.css" />
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/border-radius.css" />
<script src="../Scripts/src/js/jscal2.js"></script>
<script src="../Scripts/src/js/lang/fr.js"></script>
<script type="text/javascript">//<![CDATA[
var cal = Calendar.setup({
onSelect: function(cal) { cal.hide() }
});
cal.manageFields("datec", "datec", "%d/%m/%Y");
//]]></script>
merci beaucoup pour votre prochaine réponse
désolé encore
jeffbretelle
Messages postés2Date d'inscriptionvendredi 8 décembre 2006StatutMembreDernière intervention 8 septembre 2009 8 sept. 2009 à 13:54
bonjour,
Effectivement, quand tu fait 'retour page précédente', il retourne à la page d'acceuil car le chargement de contenu dans le div n'est pas considéré comme une nouvelle page.
swissikarim
Messages postés30Date d'inscriptionjeudi 27 août 2009StatutMembreDernière intervention17 février 2011 8 sept. 2009 à 12:54
bonjour
je suis débutant pour la création de application web j'utilise
la fonction mais lorsque je met[# test]
lorsque j'ouvre la page désiré il y a un problème d'affichage des caractétres spéciaux é par ? par exemple.
aussi lorsque je fait un retour à la page précédente retourne toujours au page d'accueil .
j'ai lu les précédentes pages mais je ne compris pas les solutions car je ne vois pas un exemple pour éclairer ces problémes.
merci beuacoup pour votre prochaine réponse
et encore désolé à la répétition des choses
iznobe2601
Messages postés26Date d'inscriptionvendredi 10 avril 2009StatutMembreDernière intervention16 juillet 2009 11 avril 2009 à 11:21
en tout cas je te remercie beaucoup pour ton aide .
bon courage pour ton serveur .
@ +++
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 11 avril 2009 à 11:00
Bonjour,
Désolé de répondre aussi brièvement, mon serveur vient de me lacher, mais je te promet de revenir poster ici prochainement.
J'ai constaté pas mal de petites choses qu'on pourrait modifié mais surtout j'ai dis en bas de la page appelante, pas de la page appelée...
Et là si tu veux voir ta page raffraichir, tu dois ajouter à l'url toto=Math.round(Math.random()*10000) dans la fonction ajax...
En attendant que je revienne poster.
iznobe2601
Messages postés26Date d'inscriptionvendredi 10 avril 2009StatutMembreDernière intervention16 juillet 2009 10 avril 2009 à 18:09
re et merci JLN , pour ton aide .
oui mon fichier shoutbox.php est à la racine du site , mais le fichier appelant non il est dans un dossier .
donc dan mon dossier appelant j ' ai mis le code en haut de la page sans rien changé
<script type="text/javascript">
function envoieRequete(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
}
}
// dans le cas du get
xhr_object.send(null);
}
</script>
puis mondiv avec l ' include :
<?php
if ($CURUSER["see_shoutbox"]=="yes")
include ("shoutbox.php");
?>
puis le lien pour raffraichir
[# raffraichir]
voilà le code simplifié pour mon fichier appelant .
maintenant mon fichier shoutbox.php
[code}
<?php
if ($CURUSER["see_shoutbox"]=="yes") {
if (isset($_GET['sent'])) {
if($_GET["sent"]=="yes") {
$user=$CURUSER["username"];
$date=time();
$message=trim($_GET["shbox_text"]);
mysql_query("INSERT INTO shoutbox (msgid, userid, user, date, message) VALUES ('', ".sqlesc($userid).", ".sqlesc($user).", ".$date.", ".sqlesc($message).")") or sqlerr(__FILE__, __LINE__);
}
}
$res = mysql_query("SELECT msgid, userid, message, date FROM shoutbox ORDER BY date DESC LIMIT 20") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
print("\n");
else {
$sp=" ";
while ($arr = mysql_fetch_assoc($res)) {
if ($CURUSER["mod_access"] == "yes")
$del="[del]";
attention le code n ' est pas complet pour ne pas trop surcharger je pense en avoir mi suffisament.
j ' ai essayé comme tu m ' as dis dans le fichier shoutbox.php tout en bas , mais , ça ne fonctionne toujours pas .
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 10 avril 2009 à 13:31
iznobe2601 tu dois placer ca dans la page qui inclus la div et ce tout en bas juste avant car l'appelle se fait une fois tout affiché.
et ton fichier shoutbox.php est-il à la racine du site ?
Moi je fais de la domotique et ma page (celle qui apporte de nouveau éléments) se raffraichit comme cela et je n'ai pas de soucis.
Met un peu plus de code pour que l'on puisse t'aider...
@+ JLN
iznobe2601
Messages postés26Date d'inscriptionvendredi 10 avril 2009StatutMembreDernière intervention16 juillet 2009 10 avril 2009 à 13:25
dois je placer ce code dans l ' include ou dans la page appelante ?
iznobe2601
Messages postés26Date d'inscriptionvendredi 10 avril 2009StatutMembreDernière intervention16 juillet 2009 10 avril 2009 à 13:20
apres reflexion la nuit porte conseil ,surtout au gros debutant comme moi ,
je me suis dis qu ' il etait plus judicieux de placer ça dans mon code :
mais maintenant je ne vois pas la solution , un autre script ajax peut etre à moins qu ' il y ait plus simple bien sur ??
iznobe2601
Messages postés26Date d'inscriptionvendredi 10 avril 2009StatutMembreDernière intervention16 juillet 2009 10 avril 2009 à 01:07
bonjour à tous , je trouve cette source tres pratique par contre j ' ai un probleme , je voudrais faire disparaitre le div initial , j ' arrive à afficher le div mis à jour en lieu et place de l ' ancien corretement mais l ' ancien s ' affiche juste au dessous du nouveau j ' ai du loupé une etape ...
je precise que je suis tres novice en la matiere , pour cause c ' est le premier script ajax que j ' utilise .
je vous prierai donc d ' etre vraiment le plus clair possible svp .
merci d ' avance pour vos reponses et ce super site !!!
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 28 mars 2009 à 12:17
Coucou me revoilou !!!
Après avoir testé la manière pour moi la plus simple à mettre en oeuvre, j'ai juste ajouter à la suite des paramètres de l'url '&toto='+Math.round(Math.random()*10000) et tout fonctionne impec.
Merci beaucoup à vous tous, cela m'a bien aidé...
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 28 mars 2009 à 10:37
Ok, merci beaucoup pour toutes ces réponses, je m'en vais essayer tout ca...
@+ JLN
verbiagecasselaicouill
Messages postés18Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention27 mars 2009 27 mars 2009 à 22:26
Dernier truc:
Pour le deuxième truc remplacer SRC="chargacceuil.html" par SRC="nom de la page à charger par défault.html"
verbiagecasselaicouill
Messages postés18Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention27 mars 2009 27 mars 2009 à 22:24
erreur:
pour le bouton:
getElementById('nom de l'iframe')
L'id de l'iframe et l'attribut name doivent être les mêmes au cas ou je me planterai
verbiagecasselaicouill
Messages postés18Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention27 mars 2009 27 mars 2009 à 22:21
Pas compris.
J'avais réeussis à faire marcher correctemment le script mais il y a trop de pbl surtout pour le référencement et l'absence de bouton retour du navigateur
Une technique mieux:
Dans la page chargée:
__________________________________________________________________________________
Oups ça ne marche pas. Vous utilisez probablement un navigateur peu conventionnel. __________________________________________________________________________________
Pour faire un lien bouton dans n'importe quelle page:
Toutes les pages seront chargées dans l'iframe. Même résultat sans les défaults que ce script pourris. Le problème de l'iframe pour l'indexation est résolu par le premier script de ce post.
Good luck. Tu peux reposter si tu en chie
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 27 mars 2009 à 19:10
En mettant une variable aléatoire à la fin de l'URL appelé, par exemple : script.php?var1=foo&var2=bar&sync=249582068
Où "249582068" est une valeur pouvant être un hashage de timestamp ou n'importe quelle valeur générée dynamiquement (et qui change donc à chaque création de l'URL).
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 27 mars 2009 à 16:55
Bonjour à tous,
J'essaye d'utiliser ce script, ca marche, mais une seule fois, après les pages affichées sont chargées depuis le cache, mais du coup ma requete sql ne 'execute qu'une fois. Ma question, comment obliger le navigateur à afficher toujours la page venant du serveur ??? Pour toutes réponses merci.
verbiagecasselaicouill
Messages postés18Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention27 mars 2009 23 févr. 2009 à 18:47
Un forum qui s'étalera sur 10 ans.
Difficile;
Pour mon compte ça marche pas sur IE 7 et pour le bouton retour...
Heeeeelp
cs_badoux
Messages postés137Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention16 décembre 2008 13 nov. 2008 à 07:43
Si je peux me permettre ce poste n'est plus d'actualité.
Aujourd'hui avec les librairies tel que prototype, jQuery, Mootools ou encore Scriptaculous, on peut très facilement mettre en place de l'ajax, dont des requêtes XMLHttpRequest. Qui plus est, c'est évidemment compatible par defaut full-browser et on peut y ajuster les paramètres que l'on souhaite très simplement.
Je vous laisse la doc, si vous souhaiter vous y mettre. Je vous recommande l'utilisation de jQuery qui est pour moi, la plus grande lib et la plus répandue sur la toile, qui plus est c'est la plus légère au niveau du poids.
Dindonneau
Messages postés1Date d'inscriptionvendredi 2 mai 2008StatutMembreDernière intervention12 novembre 2008 12 nov. 2008 à 21:54
tres bonne source ...
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 20 sept. 2008 à 14:57
Petite erreur : le deuxième "xhr_object1.readyState" est bien un "xhr_object2.readyState" ^^
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 20 sept. 2008 à 14:55
function envoieRequete(url1, id1, url2, id2)
{
var xhr_object1 = null;
var position1 = id1;
var xhr_object2 = null;
var position2 = id2;
if(window.XMLHttpRequest) {
xhr_object1 = new XMLHttpRequest();
xhr_object2 = new XMLHttpRequest();
} else
if (window.ActiveXObject) {
xhr_object1 = new ActiveXObject("Microsoft.XMLHTTP");
xhr_object2 = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la **premiere** requete vers la page désirée
xhr_object1.open("GET", url1, true);
xhr_object1.onreadystatechange = function(){
if ( xhr_object1.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position1).innerHTML = xhr_object1.responseText;
}
}
// dans le cas du get
xhr_object1.send(null);
// On ouvre la **deuxieme** requete vers la page désirée
xhr_object2.open("GET", url2, true);
xhr_object2.onreadystatechange = function(){
if ( xhr_object1.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position2).innerHTML = xhr_object2.responseText;
}
}
// dans le cas du get
xhr_object2.send(null);
__________________________________________________
Là j'ai dupliqué tout le code, mais tu peux réutiliser le même xhr_object pour les deux requêtes. Problème : ce ne sont pas des appels simultanés et il faut prévoir le fait que la première puisse échouer.
nicomartus
Messages postés2Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention19 septembre 2008 19 sept. 2008 à 14:15
Je comprends le principe mais je suis vraiment au tout début et de plus je ne sais pas trop quoi mettre dans mon lien. Peux-tu me montrer un exemple, svp. Je comprends mieux quand je vois les choses.
Merci.
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 19 sept. 2008 à 14:01
Il faut arranger le code pour que deux actions se fassent.
Voici une action de modification du contenu :
document.getElementById("div_qui_existe").innerHTML = xhr_object.responseText;
Il suffit d'en mettre une autre qui modifie un autre DIV, et éventuellement de dupliquer l'objet XHR à partir duquel il récupère le contenu à mettre.
nicomartus
Messages postés2Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention19 septembre 2008 19 sept. 2008 à 12:49
Bonjour,
je débute tout juste l'Ajax. J'ai testé ce code qui fonctionne bien, du coup je voudrais savoir comment faire pour qu'un seul lien charge deux pages dans des div différents ? En fait ça doit recharger le div ou se trouve le lien, plus un div dans la page.
Merci d'avance pour votre aide.
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 27 juil. 2008 à 13:50
AJAX ne fonctionne pas sur des domaines multiples. En fait, il n'est pas possible d'interroger un une adresse qui ne fait pas partie du domaine à partir duquel on fait la demande.
Dans ton cas, l'adresse « file:\\mon_repertoire » ne fait pas partie du même domaine que 127.0.0.1 ou localhost.
jmeunier
Messages postés86Date d'inscriptionmardi 10 septembre 2002StatutMembreDernière intervention17 mai 2013 27 juil. 2008 à 11:42
bonjour,
je n'arrive pas à faire "tourner" cette page en local.
j'appelle la page stockée sur mon disque.
IE la charge.
quand je clique sur : test ou test2
-> accès refusé
quand je mets la page dans mon serveur local(127.0.0.1) ca fonctionne car il est en "site de confiance".
J'aimerai que cela fonctionne en appelant la page directement de mon disque ...
j'ai beau mettre "file:\\mon_repertoire dans site de confiance, il ne le prend pas...
Merci de vos conseils
leod38
Messages postés4Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention 8 janvier 2010 22 mai 2008 à 13:42
bien le bonjour !
je te félicite pour se script , c'est exactement ce que je cherchai et ca marche bien !
néanmoins je suis débutant en Ajax et du coup d'autres petits soucis apparaissent
je voudrai avoir votre avis pour les régler :
- 1 les caractères spéciaux : il suffit de codé en propre en html (réglé)
- 2 vous parlez de mettre la page précédente dans une variable pour ne pas bloquer le bouton précédent
comment fait on plus précisément ? je ne vois pas !
sinon merci de toutes vos réponses elle m'ont bien été utile jusqu'ici
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 juin 2007 à 17:31
Normalement la réponse est quelque part dans les commentaire précédants... .. !
C'est une question d'encodage des données envoyées... .. .
@ tchaOo°
jeffbretelle
Messages postés2Date d'inscriptionvendredi 8 décembre 2006StatutMembreDernière intervention 8 septembre 2009 14 juin 2007 à 16:38
Bonjour tout le monde.
Merci beaucoup pour ce script qui fonctionne pas mal du tout.
J'ai malgre tout un probleme : les caractère spéciaux ne passent pas (caractères avec accents) et les js non plus.
<script type='text/javascript' language='javascript'>
function httpRequest(div,file){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
----------------accueil.php-------------------
<?php
du code pour récupérer des valeurs dans une BD. ce code fonctionne.
?>
</script>
..[du code pour afficher en défilement les valeurs récupérées ci-dessus]..
<script language=\"JavaScript1.2\">
..[du texte dont des caractère é à è ê etc]..
----------------------------------------------
Et le résultat que j'obtiens au chargement de la page, c'est que accueil.php se charge bien dans le div "cadre" de index.php mais le texte défilant n'est pas présent et les caractères spéciaux (+ les 2 caratères suivants) sont remplacés par "?".
Pour faire un essai, j'ai fait un
<?php include('accueil.php'); ?>
et cela fonctionne sans probleme.
Je ne sais pas trop à quoi ca pourrait etre dû. Est-ce que quelqu'un pourrait m'aider ??
Merci d'avance.
Pour info, j'utilise cette fonction et non pas des includes parce que j'ai un menu en flash et que je met donc le code suivant sur mon bouton 'accueil'. (et semblable pour les autres boutons...)
on (release){
getURL('javascript:httpRequest('cadre','accueil.php')');
}
Je ne veux pas recharger toute la page car elle contient un div dans lequel j'ai mis un mini-lecteur de musique (en flash aussi) et je ne veux pas que la chanson redemarre dès que je change de page.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 30 janv. 2007 à 16:10
Bah en terme d'accessibilité les deux sont bof bof... pareil en ce qui concerne la portabilité (compatibilité) avec le client... en terme de référencement les (i)frames sont meilleur il me semble et en terme de standard mieux vaut utiliser les xmlhttprequest... .. .
Tout dépend de ce que tu veux... comment tu veux le déployer... quel public tu veux toucher et quels contraintes peuvent découler de ce même public cible... et si tu veux être au norme W3C... .. .
@ tchaOo°
xamxeladog
Messages postés5Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention30 janvier 2007 30 janv. 2007 à 15:59
euh.. je vais pt'et passer pour un naabo mais bon tant pis, j'assume ^^
"Euh... les (i)frames... les language serveur... lOoOL... .. . :oD
Bon ok je sors... .. . :oP
@ tchaOo°"
Bon, j'ai vu que les frames c'est pas bien et patati patata...soit,oki... je développe actuellement pas mal avec les iframes inclues dans les div, exemple :
Me demandant si les iframes au final, c'eest pas un peu comme les frames, et là je vois le XMLHTTPRequest! Ô Miracle!! cela existe donc?! Bon je commence à me renseigner, et je tombe sur votre page... Euh.... C'est bien ou c'est pas bien?
Et ma solution, c'est bien ou c'est pas bien?
Voilà, merci d'avance pour vos réponses ^^
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 11 janv. 2007 à 12:19
salut
pour les pages contenant des formulaires avec la methode "post" ou "get" ya eu des problemes,
try to find a solution ;)
cs_revolt
Messages postés68Date d'inscriptionsamedi 5 mai 2001StatutMembreDernière intervention15 mars 2015 4 janv. 2007 à 14:08
Bravo pour cette source !!
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 23 nov. 2006 à 11:49
Re encore moi comment enlevé # cela a la fin de l'url please
toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010 20 nov. 2006 à 17:51
@speedylol : Essai dans un premier temps de voir si mon exemple fonctionne seul (uniquement avec les lignes que j'ai écrites) comme je l'ai marqué, si il fonctionne dans ce cas on passera en message privé pour éviter de polluer ces commentaires (ou bien par mail).
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 20 nov. 2006 à 17:43
voila ce ce que j'ai fait
<?php
echo'
':
bla
bla
bla
bla
bla
bla
bla
bla
bla
* Champs obligatoires,
</form>
</center>";
}
echo"
"
Et je centre tous dans tete.php site
toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010 20 nov. 2006 à 16:50
As-tu bien mis le code PHP de generation.php entre les balises <?php ... ?> car cela fonctionne chez moi. Les as-tu bien mis dans les mêmes repertoires ?
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 20 nov. 2006 à 16:08
je viens de tester toutphp le script, cela ne fonction pas
voila l'erreur
Found
the document has moved here
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 nov. 2006 à 15:44
Euh... les (i)frames... les language serveur... lOoOL... .. . :oD
Bon ok je sors... .. . :oP
@ tchaOo°
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 20 nov. 2006 à 15:41
Pourquoi? il existe quelque chose de plus dynamique et qui fonction aussi bien???
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 20 nov. 2006 à 13:39
+1
cf. DHTML
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 nov. 2006 à 13:36
Oui je sais... mais quel interet de revenir dessus... .. .
Mais bon puisque c'est fait (;o))... je pense que tout dépend de la définition du mot dynamique... dynamique ne veux pas forcement dire généré dynamiquement... ainsi on peut dire que javascript par le biais de la gestion des evenement peux rendre plus dynamique une page bien que cette dernière soit statique... .. . ;o)
@ tchaOo°
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 20 nov. 2006 à 12:56
c'était un débat qu'on avait eu plus haut : "Permet d'enlever le lien et de rendre la page plus dynamique ..."
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 20 nov. 2006 à 12:21
Quel est l'interet de ton commentaire coucou... .. ?
Pour le reste si la génération en tache de fond de la réponse est dynamique on peut considérer que le contenu est dynamique... tout dépend de quel dynamise tu parle... celui de la réponse ou celui de la page visualisée... .. .
Pour le reste c'est un détail dont on se fout un peu... non... ton commentaire n'a pas vraiment lieu d'être... .. .
@ tchaOo°
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 20 nov. 2006 à 09:32
je persiste, c'est pas dynamique... c'est statique, même si ça fait joli...
toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010 20 nov. 2006 à 09:18
Voilà un exemple d'utilisation :
--------- Mon fichier index.php -------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<title>cyril-test</title>
<script type="text/javascript">
function envoieRequete(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
}
}
// dans le cas du get
xhr_object.send(null);
}
</script>
</head>
</html>
------------- Fin fichier index.php -----------
------------- Début fichier generation.php -----------
echo 'Réussite de la génération du fichier generation.php';
------------- Fin fichier generation.php -----------
En fait tout ce qui sera généré dans le fichier generation.php sera mis à la place du contenu du div 'cibleDeLaFonction'
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 20 nov. 2006 à 09:00
Merci de ta réponse
ce que je veux comment cela ?? car je suis pas très spécialiste du javascript ??? d'aillieur je devrais m'interesser plus a cela ???
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 19 nov. 2006 à 21:17
Dans le onSubmit tu mets ce que tu veux (après "javascript:")
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 19 nov. 2006 à 20:38
tu note quoi stp???
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 19 nov. 2006 à 20:31
plus rapide sans clignotement, GRONOK tu place sa a la fin dans le submit du formailre je suppose.
merci
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 19 nov. 2006 à 19:37
Je sais pas...
gdu3744
Messages postés5Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention19 novembre 2006 19 nov. 2006 à 18:16
quelle est la plus value de cette methode plutot qu'a utiliser des frames ?
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 19 nov. 2006 à 15:14
Avec un formulaire tu peux ne mettre aucune action et mettre onsubmit="envoieRequete(...)". Comme ça c'est ce qu'il y a dans onSubmit qui va s'exécuter et non plus ce qu'il y a dans action.
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 19 nov. 2006 à 10:27
bonjour cela fonction super bien ce script une seule question dans un <form action='truc.php' >
comment faire pour utiliser cette même fonction merci de vos réponse???
speedylol
Messages postés228Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention27 novembre 2013 13 nov. 2006 à 15:12
bonjour cela fonction aussi avec une pagination en fesant l'appel de la fonction merci de votre réponse.
comme cela svp???
exemple:
[#
précédent]
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 23 août 2006 à 15:53
@ kbalevil... bah non y a pas de solution miracle c'est une des limite d'ajax... la plus contraignante à mon gout... .. .
2 solution... gérer en fonction du module comme tu l'a dit avec des if, un switch ou un constructeur prenant le nom du module en paramètre... ou alors faire renvoyer par le serveur un tableau javascript contenant une entrée avec le contenu html et une entrée avec le code javascript à executer... l'un dans l'autre c'est un peu du bricolage... .. .
@ tchaOo°
nmdeal2
Messages postés9Date d'inscriptiondimanche 20 août 2006StatutMembreDernière intervention 5 août 2008 22 août 2006 à 23:17
Très utile pour les affiliations.
Merci
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 8 août 2006 à 09:43
Merci de cette précision.
J'ai contourné le problème d'une façon sensiblement différente, lorsque la page est affichée, j'ai fais appel à un constructeur dans le fichier JS du contrôle (que j'appelle dans le index.php), mais là, je me doute que si j'ai plusieurs controles avec plusieurs constructeurs donc, je vais avoir un soucis, donc y a t il moyen d'appeler un constructeur en particulier (sans avoir recours au if, parceque je compte avoir pas mal de controles), et sans passer de paramètre genre : constructeur('nom du contrôle') + un test dans chaque constructeur ?
Merci en tout cas pour ton aide KANKRELUNE
gdu3744 : j'ai eu aussi du mal avec les chemins relatifs au déébut, une vraie galère, maintenant ça va. Merci de ton aide.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 7 août 2006 à 19:41
en fait le code javascript est chargé en même temps que la page et ne l'est plus (hormis si tu utilise eval)
Oups c'est pas très clair... .. .
en fait le code javascript est chargé en même temps que la page et est interprété (déclaration des fonction, etc) ensuite il ne l'est plus... hormis si tu utilise eval... .. .
@ tchaOo°
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 7 août 2006 à 19:39
Ah ok... j'avais pas compris... arrete moi si je me trompe mais tom problème n'est pas au niveau des templates mais au niveau du code javascript contenu dans la réponse de tes XMLHTTPRequest... c'est normal... le code javascript contenu dans les XMLHTTPRequest n'est pas interprété... en fait le code javascript est chargé en même temps que la page et ne l'est plus (hormis si tu utilise eval)... .. .
deux alternatives s'offrent à toi dans ce cas... charger toute tes fonctions javascript en même temps que la page ou alors lancer deux requetes ajax... l'une retournant le code html pour la mise à jour de ta page l'autre retournant du code javascript à passer dans un eval()... une troisième option est possible bien que plus crade c'est de mettre une balise script avec un id dans ton index et de changer dynamiquement le fichier cible en fonction de la page chargée via Ajax... .. .
@ tchaOo°
gdu3744
Messages postés5Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention19 novembre 2006 7 août 2006 à 18:40
j'ai eu egalement un probleme de chemin dans un autre cas de figure (transfert d'info entre un iframe et un div) ou le texte et les images du iframe (bien affichés) etait mal transferés (pas d'images)et j'ai fini par comprendre (avant de devenir fou...) qu'il fallait un "./" au lieu d'un "../" pour les references d'images. Du coup je ne voyais plus les images dans mon Iframe (mais pas d'importance) et les voyait dans mon div (ce que je voulais).
peut etre que ca peut te mettre sur la piste.
Bonjour de Montreal !
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 7 août 2006 à 18:05
Mon architecture est comme suit :
pour chaque controle, j'ai un repertoire dans lequel j'ai 1 PHP, 1 CSS, 1 JS, 1 TPL
Pour la page principale, j'ai 1 PHP, 1 JS
Donc, j'ai un fichier index.php qui est la page principale, sur cette page je place des balises qui sont des références à mes controles (elles doivent être remplacées par mes controles), à la fin de cette page, je lance la fonction Javascript de remplacement de ces balises.
Dans cette fonction, je fais appel au fichier PHP du contrôle concerné, ce fichier va implémenter le template et finalement l'envoyer à la fonction javascript en retour par le XMLHTTPRequest.
Bon donc, j'ai réussi à afficher mon contrôle (déplacement du référencement de l'objet template dans le fichier PHP du contrôle), mais l'initialisation des variables contenues dans le fichier javascript du controle ne sont pas appellées, je m'explique, lorsque le contrôle est affiché, je le place à un endroit donné, et bien malgré l'appel à la fonction javascript à la fin du template, la fonction n'est pas exécutée, d'où mon soucis, le CSS référencé dans le fichier index.php est bien pris en compte, mais pas le fichier JS spécifique au contrôle, et si je déplace le référencement de ce fichier JS dans le fichier PHP du controle, pareil.
Donc je pense qu'il peut y avoir un soucis de chemin, mais je n'ai pas d'erreur de chargement.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 7 août 2006 à 17:19
Je charge 'Index.php', il contient la balise à remplacer, les références au template, ainsi que la création de l'objet.
De là, je lance la fonction javascript de remplacement.
J'appelle la page PHP du contrôle, il là il plante sur l'enrichissement de l'objet.
J'ais du mal à comprendre la fdaçon dont tu procede... qu'est ce que tu appel références au template dans ton index.php... .. ?
le chemin doit il faire référence au fichier de base ('Index.php') ou au fichier PHP du controle ?
De quel chemin tu parle ? celui de ta requete ajax... .. ?
@ tchaOo°
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 7 août 2006 à 15:46
Ben oui, mais malheureusement ça ne fonctionne pas.
Voici le détail :
Je charge 'Index.php', il contient la balise à remplacer, les références au template, ainsi que la création de l'objet.
De là, je lance la fonction javascript de remplacement.
J'appelle la page PHP du contrôle, il là il plante sur l'enrichissement de l'objet.
J'ai regardé dans mes déclarations, je vois rien.
le chemin doit il faire référence au fichier de base ('Index.php') ou au fichier PHP du controle ?
Merci
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 7 août 2006 à 15:09
Je vois pas pourquoi ce système ne serait pas compatible avec l'utilisation des templates... la gestion des templates se fait coté serveur... la requete Ajax se fait coté client... rien à voir... si le fichier php cible fonctionne correctement l'erreur provient surement de la requete ajax et de son traitement... .. .
@ tchaOo°
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 7 août 2006 à 13:52
Bon, j'ai une piste, voilà le cas complet :
J'ai créé un widget utilisant 4 fichiers (PHP, TPL, CSS, JS), le style de template utilisé est Smarty. Tout fonctionne très correctement si j'appelle le fichier PHP référence directement. Si par contre je met une balise qui doit être remplacée par cette feuille en utilisant cette fonction, j'ai une erreur. J'ai donc essayé de charger une feuille contenant uniquement des éléments HMTL, et là ça semble fonctionner correctement, il m'apparaît donc clairement que le système de template n'est pas compatible avec cette fonction. Si quelqu'un connait un moyen de contourner ce problème en gardant ma structure actuelle, je suis preneur.
Merci
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 7 août 2006 à 12:56
Salut à tous,
J'ai un petit soucis, j'essai de charger des contrôles (Type Dojo) avec cette méthode, mais il semble que l'utilisation de template ne soit pas possible ! Vous confirmez ?
Merci
ns_deux
Messages postés10Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention29 août 20061 6 août 2006 à 18:01
Là, tu as le code brut sans les entetes et ca marche pas alors je pense pas que ca vienne des entetes.
Qq'un arrive à faire fonctionner un menu deroulant dynamique comme le miens? si oui comment a-t-il fait?
Merci d'avance.
gdu3744
Messages postés5Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention19 novembre 2006 6 août 2006 à 15:01
A tout hasard , c'est peut etre lié à ton entête HTML (la premiere ligne du fichier).
ns_deux
Messages postés10Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention29 août 20061 25 juil. 2006 à 20:50
Bonjour à vous,
j'ai un probleme sur cette page php. Il m'est impossible d'afficher mon resultat il s'efface aussitot. QQun saurait pourquoi?
page principale.php
<script type= "text/javascript">
function recharge(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if (document.getElementById(position) && xhr_object)
{
if (xhr_object.readyState == 4)
{
if (xhr_object.status 200 || xhr_object.status 304)
document.getElementById(position).innerHTML = xhr_object.responseText;
else
document.getElementById(position).innerHTML = 'Error ' + xhr_object.status + ' : ' + xhr_object.statusText;
}
else document.getElementById(position).innerHTML = 'Chargement en cours... veuillez patienter... .. .';
}
}
// dans le cas du get
xhr_object.send(null);
}
</script>
<tr>
<td>
O.A.M :
<select name ='oam' id='oam' style='width:240' >
<?php
echo "<option value=''></option>";
require("connect_atelier.php");
$req = 'SELECT DISTINCT oam FROM oam ';
$res = mysql_query($req,$connect) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row['oam']."'>".$row['oam']."</option>";
}
echo "</select>";
?>
---------------------------------------------------------
Tout marche bien a part le fait que mon resultat s'efface aussi sec. i je maintien le click de souris j'ai mais valeur mais des que je relache ca s'efface bizarre. Je comprends rien
Merci si vous pouvez m'aider
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 13 juil. 2006 à 05:01
Tu peux faire les deux avec les XMLHttpRequest... la différence se situe au niveau de l'attribut de réponse... .. .
monObject.responseText => le format texte, html...
monObject.responseXML => le format xml...
@ tchaOo°
gdu3744
Messages postés5Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention19 novembre 2006 13 juil. 2006 à 04:20
Super , exactement ce que je cherchais. Merci pour ce script.
J'avais trouvé un peu la meme chose mais pour rapatrier du XML mais pas une page html complete.
Cool ! ca fait 2h que je cherche...(vous avez dit productivité...;o))
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 12 juil. 2006 à 14:35
oui et si on veut revenir deux page en arriere?
sinon jpense utilisé un framework ou sinon je viens de tomber sur RSH (Really Simple Historic)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 12 juil. 2006 à 13:13
tout simplement garder dans une variable la dernière page que tu as chargé... .. .
@ tchaOo°
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 12 juil. 2006 à 11:47
salut,
j'utilise la meme chose dans mon site internet. sauf que en utilisant cette solution, il est impossible de faire un "retour arriere" d'aller à la "page précédente" en cliquant dans le bouton du navigateur.
je voulais savoir si quelqu'un avait une solution?
merci par avance.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 20 juin 2006 à 16:27
"
<?php include($_GET['pageID']); ?>
"
jolie faille...
sur http://coucou747.hopto.org catégorie php, il y a un lien vers une page qui explique différentes failles...
Kikoleskargo
Messages postés1Date d'inscriptionmardi 20 juin 2006StatutMembreDernière intervention20 juin 2006 20 juin 2006 à 16:21
et ya moyen de unload ces pages en div ? :D
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 3 juin 2006 à 15:44
Tous les caractères spéciaux... .. .
@ tchaOo°
williamprotti
Messages postés44Date d'inscriptionsamedi 15 mars 2003StatutMembreDernière intervention21 mai 2007 3 juin 2006 à 12:48
Merci Kankrelune!, mais quand tu dis "(pense à échapper les caractères spéciaux)" tu veus dire les accents? Parce que les accents "éàè" etc.. aparaissent sous forme "?"
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 2 juin 2006 à 23:52
On lit les commentaires... c'est marqué... .. !
xhr_object.open("POST", file, true);
xhr_object.onreadystatechange = ... .. .
xhr_object.send("mavar1=pwet&mavar2=plop&mavar3=blurp..."); (pense à échapper les caractères spéciaux)
@ tchaOo°
williamprotti
Messages postés44Date d'inscriptionsamedi 15 mars 2003StatutMembreDernière intervention21 mai 2007 2 juin 2006 à 23:05
Bonjour! On fait comment pour utiliser le même script, mais pour la méthode POST d'un formulaire?? Merci!
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 1 juin 2006 à 14:13
ça n'apporte rien de plus que le tutos de toutjavascript, qui est mis en avant sur codes-sources (ici et sur phphcs) depuis plusieurs mois déja...
Et pour le problème de compatibilité avec IE, dans IE7 l'objet xmlhttprequest sera integré en NATIF.
Et pour finir, "les navigateurs qui bloquent l'accés a des sites externe" c'est un parametre dans les options... dans IE c'est "accés aux sources de données sur plusieurs domaines" je crois... je n'ai jamais tenté de l'activer, mais vu que lors d'une execution locale ça marche... on peut en deduire que...
=)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 29 mai 2006 à 20:44
Salut josh666... actuellement j'utilise un timeout comme ça ça déclenche la methode abord si ça traine trop... .. .
@ tchaOo°
josh666
Messages postés81Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention 1 octobre 20071 29 mai 2006 à 20:19
Bonjour à tous, je tien a dire que cette focntione est très utilise pour les modules d'admistration de site... sa rend la gestion plsu fluide et ressemble plsu a une vrai application.
Ensuite Pour : kankrelune :
j'ai peut-etre une idée pour toi, est-ce que tu as esasyer d'ajouter dans ta focniton qui s'occupe de gérer le XMLHttpRequest d'initailiser une varialbe globale (ex: var enTraitement true) et lors de l'appel de la focntione a nouveau tu vérifi si cette variable est egal a true si oui tu arrete l'éxécutin de la fonction... bine sur il faut que lors que tu effectue la vérification de (xhr_object.readyState 4) tu affecte false a ta variable..
Si une idée comme sa, parce que j'ai jamais eu le problème donc tu parle sur mes applications..
Sur ce ++
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 16 mai 2006 à 01:49
Salut... si je peut ajouter mon grain de sel... .. .
Concernant l'instanciation de l'objet moi je fais comme suit...
var xhr_object = false;
if (window.XMLHttpRequest)
{
xhr_object = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
var ieversions = ['Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
Reste un problème... principalement avec firefox... si une requete est envoyée alors que la précédente n'a pas fini d'être traitée (ex : rafraichissement d'un chat) et bien cela crée un belle erreur js... il faut alors réussir à controller l'état d'avancement de la requete en cours et si elle traine utiliser la fonction xhr_object.abord()... et là je sèche un peu... .. .
@ tchaOo°
szwr
Messages postés6Date d'inscriptionjeudi 11 avril 2002StatutMembreDernière intervention21 décembre 2006 9 mai 2006 à 08:57
En ce qui concerne la sécurité du contenu affiché, tout doit se faire du côté serveur (PHP, ASP, CGI).
XMLHttpRequest permet cependant la construction de pages complexes et modulaires en ménageant la bande passante.
jmecodol
Messages postés16Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention28 août 2006 8 mai 2006 à 19:46
je trouve ca bluffant, couplé a un proxy maison, c'est 100 fois plus agréable que des liens basiques, chapeau !!!
c'est super éfficace mais le top, ca serai de rajuter un éffet de transition (du style powerpoint, j'ai vu sa un jour sur un site web,mais j'ai oublié l'URL) .
ca change la vie aux utilisateur basiques (chef de service informatique,non initiés a la programmation et habitués a la patience) .
grand luxe !
cs_badoux
Messages postés137Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention16 décembre 2008 8 mai 2006 à 12:45
c'est pas tout a fais ca !
Tu peux installer des frameworks (lib) AJAX, pour te faciliter la tâche!
A++
cs_badoux
Messages postés137Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention16 décembre 2008 8 mai 2006 à 12:39
bonjour,
Il est vrai que le métier de devellopeur et rude, prog>debog>prog>debog... voila une journée d'un programmeur.
C'est particulièrement IE6 qui pose problème !
Mais patience Internet Explorer accéptera mieu le code dans un avenir très proche :-)!
On espère que d'ici quelques années tout les naviguateur ce seront mis au W3C :-)
en attendant ce jour, voila un exemple qui roule à merveille ! :-)
function httpRequest(div,file){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
lordbdp
Messages postés33Date d'inscriptiondimanche 9 octobre 2005StatutMembreDernière intervention10 avril 2020 8 mai 2006 à 12:37
J'ai cru comprendre qu'il fallait installer AJAX sur le serveur pour faire tourner ses fonctionnalités. C'est faux ?
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 8 mai 2006 à 12:05
Il y a juste l'initialisation de l'objet qui est différente pour chaque navigateur. On trouve des exemples tout fais sur Google.
Après pour appeler les méthodes c'est pareil (l'objet c'est le même).
williamprotti
Messages postés44Date d'inscriptionsamedi 15 mars 2003StatutMembreDernière intervention21 mai 2007 8 mai 2006 à 12:01
Bon moi je vais faire un truc sur mon site, je vais obliger a utiliser FireFox! Et ils devraient ce mettre au clair entre eux.... Parce que programmer 10 fois différament pour chaque navigateur c'est chiant!
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 7 mai 2006 à 21:02
iop arto
merci pour cette précision.
Have Fun ;)
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 7 mai 2006 à 20:28
APXA -> Plusieurs naviagteurs retournent cette erreur, car par question de sécurité tu ne peux faire une requête sur un autre site.
Ex: Si ton script XMLHttpRequest est sur un server "X" il peut faire des requêtes sur le site X, mais pas sur le "Y" ou "Z".
Quand je dévellope des scripts JS/PHP du genre Chat, c'est assez pratique, mais point de vue compatibilité c'est pas super et même difficile, car certains navigateurs supportent mal cette fonction.
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 7 mai 2006 à 15:47
Iop all,
j'ai pas l'impression qu'au niveau compatibilite ce soit top (FF retourne xhr_object.open operation non permise).
Have Fun ;)
williamprotti
Messages postés44Date d'inscriptionsamedi 15 mars 2003StatutMembreDernière intervention21 mai 2007 7 mai 2006 à 14:41
Merci beaucoup pour cette ressource!!!
Je voudrai juste savoir si elle est fiable, si elle est bien protégée etc...!!
Car je commence a l'utiliser partout sur mon site!!
Merci !
cs_badoux
Messages postés137Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention16 décembre 2008 7 mai 2006 à 00:25
bonsoir à tous,
Oui sur le coup de l'emplacement du message c'est vrai que je n'ai pas assuré, je suis vraiment con... je suis tellement sur des forum php que je me persuade d'y etre même si j'y suis pas ! Veuillez m'excusez !:-o
Au sujet de l'AJAX, ce n'est qu'un terme marketing pour relancer ces vieilles functions javascript que l'on avait oublié !
Voila à bientôt et désolé pour le dérangement !;-)
bonne nuit
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 6 mai 2006 à 22:40
AJAX = Asynchronous Javascript And Xml.
Donc c'est tout simplement l'utilisation de Javascript dans le but de transmettre de l'information sous forme XML, de manière asynchrone (c'est-à-dire grâce l'utilisation d'une méthode quelconque - ici un objet XMLHttpRequest - qui effectue cette opération n'importe quand dans le code).
Je remercie au passage l'auteur, Atlante34, pour en avoir fourni un exemple concret.
En ce qui concerne le standard W3C, il faut savoir que XMLHttpRequest n'en fait pas partie. D'après des recherches perso, le W3C aurait développé un moyen similaire...
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 6 mai 2006 à 20:28
Sans vouloir couper l'herbe sous le pied de Badoux, AJAX c'est juste des vieilles technologies qui sont remises au gout du jour a grand coup de couvertures dans les magazines. On le met un peu à n'importe quelle sauce peut être, mais en l'occurence cette source (Javascript/XMLHttpRequest...) c'est typiquement de l'AJAX quand même.. Ou alors on m'aurait menti ?
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 6 mai 2006 à 19:18
Qu'est-ce que c'est l'AJAX pour toi, précisement ?
D'autre part, on est bien sur le forum javascriptfr.com, et il y a du javascript, non ?
cs_badoux
Messages postés137Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention16 décembre 2008 6 mai 2006 à 19:13
Bonjour,
Perso en PHP, je ferai un simple include dans un div, serte moin dynamique du fais que cela se passe côté serveur et non client !
exemple simple en php :
<?php include($_GET['pageID']); ?>
L'exemple ci-dessus ce n'est même pas du php et encors moin de l'AJAX ! Mais du simple XMLHttpRequest qui existe depuis longtemps !
enfin tout ca pour dire que ca ne devrai pas être placé sur ce forum ;-)
A++
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 6 mai 2006 à 15:28
GRAZNOK, je ne me contredis pas vraiment... le contenu change par exemple : la valeur d'un compteur de visite, le serveur ajoute 1 à chaque visite, et pourtant, il n'y a pas de mise à jour... c'est une partie dynamique...
dynamique coté client, ça n'a selon moi pas de sens, disons que cette source permet aux gens d'ajouter une fonctionalitée comme l'abscence de rechargement...
tu devrais quand même insérer un parseur pour enlever les balises head, et n'insérer que le contenu entre et comme ça, tu pourrais charger tout style de site (mais le Css pourrait géner...)
ou sinon, tu peux ajouter un effet genre : la nouvelle page est affichée à coté avec une opacitée à 0.5, puis elle vient dessus, puis l'opacité des deux pages s'inverse... puis la page précédente prend comme opacité 0 et la nouvelle 1... bref, on peut faire des effets assez réussi...
je noterais bien 8, mais j'attend... tu ne gères pas les erreurs éventuelles, comme l'abscence de xmlhttprequest sur le navigateur, j'attend la prochaine mise à jour avant de noter...
atlante34
Messages postés14Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention24 janvier 2012 6 mai 2006 à 15:16
merci Graznok
GTR en force ...
GRAZNOK
Messages postés43Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention21 septembre 2006 6 mai 2006 à 14:25
Tu te contredis coucou747 : dynamique signifie que la page est générée par un serveur, ce qui est contraire à : "le contenu peut changer en sans faire de mise à jour".
Le principe d'AJAX c'est que le contenu d'une page extérieure peut être fusionnée à la page consultée sans que le navigateur recharge la page consultée. Je ne sais pas si "dynamique" est le mot approprié ; sinon "dynamique côté client".
Pour y ajouter le "dynamique côté serveur", il faudrait que la page extérieure soit du PHP, ASP ou autre. Ainsi on aurait les deux côtés du dynamique : "client" grâce à AJAX et "serveur" grâce à PHP.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 mai 2006 à 16:06
"dynamique".... dynamique ça s'ignifie que le contenu peut changer en sans faire de mise à jour... là, c'est pas dynamique car t'as pas de langage serveur... js est un langage statique... disons que ça fait un effet sympa, mais c'est pas du dynamique...
atlante34
Messages postés14Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention24 janvier 2012 5 mai 2006 à 16:02
A TOUTPHP,
Le principe de onload est de faire par exemple un site WEB dynamique, sans utiliser les frames.
Ici le onload charge les vontenus des div, exemples des menus en haut et a gauche, et permet ensuite de charger rien que le milieu.
toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010 5 mai 2006 à 16:00
Mais je pense que l'interet de cet exemple était de montrer qu'il n'y avait pas de rechargement de page lors du click.
Alors qu'avec ton "onload" le contenu est directement présent sur la page au chargement.
atlante34
Messages postés14Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention24 janvier 2012 5 mai 2006 à 15:53
On peut encore faire mieux pour le code,
Par exemple, si on veut que la page se charge dans le div au demarrage de la page, il suffit de mettre a la place de :
mettre,
Permet d'enlever le lien et de rendre la page plus dynamique ...
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 mai 2006 à 14:12
c'est pour ça que j'ai dit que ça dépendait de ce que l'on voulait faire...
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 5 mai 2006 à 13:47
Ok ;)
L'indexation peut ne pas être une priorité.. Tout dépend ce qu'on veut faire
Merci en tout cas
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 mai 2006 à 13:06
c'est sencé marcher partout, mais faut pas faire ça partout, c'est à consomer avec modération... sinon, les moteurs de recherches indexent mal...
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 5 mai 2006 à 12:23
intéressant !
niveau compatibilité avec les browsers/systèmes connus, ca donne quoi ?
atlante34
Messages postés14Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention24 janvier 2012 5 mai 2006 à 11:50
Pour repondre a TOUTPHP,
si tu fais envoieRequete('resultat.php','centre');
la page resultat.php s'affichera dans le div dont le id est 'centre'.
C'est mon premier prog en AJAX, donc si il y a des remarques à faire ...
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 5 mai 2006 à 11:12
Bonjour...
A corriger la ligne
xhr_object = new ActiveXObject(Microsoft.XMLHTTP);
par
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
Sinon intéréssant...
toutphp
Messages postés107Date d'inscriptionlundi 24 mai 2004StatutMembreDernière intervention 5 mai 2010 5 mai 2006 à 11:05
Juste pour être sur d'avoir tout compris : je fais
envoieRequete('resultat.php','centre');
et le resultat de la page php ce mettra dans le div d'id "centre" ?
4 déc. 2010 à 14:47
Merci pour votre script il ma vraiment aidé mais je me pose tout de même une petite question comment faire pour que les accents s'affiche et non un petit carré a leur place ? Merci d'avance
15 avril 2010 à 11:57
Le code fonctionne très bien, c'est exactement ce dont j'avais besoin, merci Atlante34.
Cependant, en plus d'afficher une page dans une div choisie, j'aimerais faire un scroll automatique vers une ancre de cette page (c'est-à-dire que, dans ma div, l'ancre située dans la page appelée soit en haut du cadre).
En utilisant les propriétés offsetTop et scrollTo, j'arrive presque au résultat voulu, MAIS je bute sur un détail: je n'arrive pas à récupérer l'offsetTop absolu sur la page (en incluant les parents...). Mon ancre se retrouve en haut de ma page, et non pas en haut de ma div.
Je n'arrive pas à integrer la fonction de getOffset incluant les positions des parents, et j'ai essayé par tous les moyens que j'ai pu imaginer avec mes faibles connaissances en js.
Pour l'instant, j'ai le code où j'ai intégré l'offsetTop de mon ancre et un scrollTo cet offset:
function envoieRequeteC(url,id,ancre)
{
var xhr_object = null;
var position = id;
var hauteur = ancre;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function()
{
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
document.getElementById(position).scrollTop = document.getElementById(hauteur).offsetTop;
}
}
// dans le cas du get
xhr_object.send(null);
}
mais je n'arrive pas à intégrer la fonction de calcul d'offsetTop absolu:
function getOffset(obj) {
var offsetTop = obj.offsetTop;
while ((obj = obj.offsetParent )!=null) {
offsetTop += obj.offsetTop;
}
return [offsetTop];
}
ni en appelant la fonction à l'intérieur de ma fonction, ni en l'intégrant directement dans ma fonction.
Quelqu'un peut-il m'aider?
Merci d'avance.
6 janv. 2010 à 06:17
Voici une autre approche :
http://www.phpcs.com/codes/RAFRAICHIR-PLUSIEURS-DIV-CLIC-AJAX_51077.aspx
Il s'agit d'une classe php qui permet de charger de manière dynamique PLUSIEURS liens dans PLUSIEURS DIV d'une page en un seul clic (en AJAX).
Bonne journée
9 déc. 2009 à 02:48
pour plus information.
http://www.javascriptfr.com/codes/CHARGER-PAGE-WEB-DANS-DIV_50954.aspx
22 sept. 2009 à 17:32
quelque chose qui peut interresser des personnes sur cette question:
http://tutorialzine.com/2009/09/simple-ajax-website-jquery/
bon du coup c'est de l'ajax, mais ca permet de garder des élements toujours en place (par exemple un lecteur audio...pour eviter les coupures)
apres ca peut poser des problemes en terme de seo...
20 sept. 2009 à 09:24
"comment garder dans une variable la dernière page que j'ai chargé"
afin de pouvoir faire de retour sur les pages via le navigateur...
j'ai pas trouvé, si quelqu'un a une piste :-)
19 sept. 2009 à 14:54
la solution pour interpreter javascript dans une page charger dans le div est la suivante:
function envoieRequete(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function (){ if (xhr_object.readyState 4 && xhr_object.status 200){
var c = document.getElementById(position);
c.innerHTML = xhr_object.responseText;
//maintenant que les données reçu on été placé dans la page,
//il faut exécuter toutes les balise script :
var allscript = c.getElementsByTagName('script');
for(var i=0;i< allscript.length;i++){
eval(allscript[i].text);
}
//alert(typeof(une_function_dans_mes_balise_script));//return function
}
}
// dans le cas du get
xhr_object.send(null);
}
10 sept. 2009 à 10:40
je trouve une grande mauvaise surprise après l'application du code d'ajax à mon code source.
ca le problème:
avant d'appliquer le code ajax à ma page d'accueil tout les importations des scripts de css, javascript ou jquery sa marchent bien et tout les styles fonctionnent comme il faut.
Mais aprés l'ajout du code ajax et lorsque appeler mes pages dans la div content de ma page d'accueil ne fonctionne aucune importation de css ou jquery et ...
svp aider moi pour résoudre ce probléme
merci d'avance
8 sept. 2009 à 14:53
je trouve cette réponse dans ce forum pour la retour au les pages
précédente mais je peut voir un exemple pour le fait en pratique:
cette réponse existe en haut->
"tout simplement garder dans une variable la dernière page que tu as chargé... .. ."
ma question comment garder dans une variable la dernière page que j'ai chargé
merci d'avance
désolé à la répétition de ce question.
8 sept. 2009 à 14:43
merci beaucoup à votre claire réponse.
je trouve un autre probléme:aprés le chargement du contenu de formulaire dans le div un champ de type input qui affiche un calendrier ne marche pas et avant de fait cette fonction d'ajax
il est fonctionné dans son propre page qui contien le formulaire
et sa le code:
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/jscal2.css" />
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/reduce-spacing.css" />
<link rel="stylesheet" type="text/css" href="../Scripts/src/css/border-radius.css" />
<script src="../Scripts/src/js/jscal2.js"></script>
<script src="../Scripts/src/js/lang/fr.js"></script>
<script type="text/javascript">//<![CDATA[
var cal = Calendar.setup({
onSelect: function(cal) { cal.hide() }
});
cal.manageFields("datec", "datec", "%d/%m/%Y");
//]]></script>
merci beaucoup pour votre prochaine réponse
désolé encore
8 sept. 2009 à 13:54
Effectivement, quand tu fait 'retour page précédente', il retourne à la page d'acceuil car le chargement de contenu dans le div n'est pas considéré comme une nouvelle page.
En ce qui concerne les caractères spéciaux : utilise par exemple "è" au lieu de "è".
Tous les caractères spéciaux : http://alexandre.alapetite.fr/doc-alex/alx_special.html
BAT
8 sept. 2009 à 12:54
je suis débutant pour la création de application web j'utilise
la fonction mais lorsque je met[# test]
lorsque j'ouvre la page désiré il y a un problème d'affichage des caractétres spéciaux é par ? par exemple.
aussi lorsque je fait un retour à la page précédente retourne toujours au page d'accueil .
j'ai lu les précédentes pages mais je ne compris pas les solutions car je ne vois pas un exemple pour éclairer ces problémes.
merci beuacoup pour votre prochaine réponse
et encore désolé à la répétition des choses
11 avril 2009 à 11:21
bon courage pour ton serveur .
@ +++
11 avril 2009 à 11:00
Désolé de répondre aussi brièvement, mon serveur vient de me lacher, mais je te promet de revenir poster ici prochainement.
J'ai constaté pas mal de petites choses qu'on pourrait modifié mais surtout j'ai dis en bas de la page appelante, pas de la page appelée...
Et là si tu veux voir ta page raffraichir, tu dois ajouter à l'url toto=Math.round(Math.random()*10000) dans la fonction ajax...
En attendant que je revienne poster.
10 avril 2009 à 18:09
oui mon fichier shoutbox.php est à la racine du site , mais le fichier appelant non il est dans un dossier .
donc dan mon dossier appelant j ' ai mis le code en haut de la page sans rien changé
puis mondiv avec l ' include :
puis le lien pour raffraichir
voilà le code simplifié pour mon fichier appelant .
maintenant mon fichier shoutbox.php
[code}
<?php
if ($CURUSER["see_shoutbox"]=="yes") {
if (isset($_GET['sent'])) {
if($_GET["sent"]=="yes") {
$user=$CURUSER["username"];
$date=time();
$message=trim($_GET["shbox_text"]);
mysql_query("INSERT INTO shoutbox (msgid, userid, user, date, message) VALUES ('', ".sqlesc($userid).", ".sqlesc($user).", ".$date.", ".sqlesc($message).")") or sqlerr(__FILE__, __LINE__);
}
}
$res = mysql_query("SELECT msgid, userid, message, date FROM shoutbox ORDER BY date DESC LIMIT 20") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
print("\n");
else {
$sp=" ";
while ($arr = mysql_fetch_assoc($res)) {
if ($CURUSER["mod_access"] == "yes")
$del="[del]";
$memberball = memberball2($arr["userid"],"");
print("".$sp.$memberball[0].$sp.strftime("%d.%m. %H:%M",$arr["date"]).$sp.$del.$sp.format_comment($arr["message"])."<hr></ br>\n");
}
}
?>
<script language='text/JavaScript1.2'>
timer = setInterval('envoieRequete("shoutbox.php","page")', 10000);
</script>
<?php
}
?>
/code
attention le code n ' est pas complet pour ne pas trop surcharger je pense en avoir mi suffisament.
j ' ai essayé comme tu m ' as dis dans le fichier shoutbox.php tout en bas , mais , ça ne fonctionne toujours pas .
10 avril 2009 à 13:31
et ton fichier shoutbox.php est-il à la racine du site ?
Moi je fais de la domotique et ma page (celle qui apporte de nouveau éléments) se raffraichit comme cela et je n'ai pas de soucis.
Met un peu plus de code pour que l'on puisse t'aider...
@+ JLN
10 avril 2009 à 13:25
10 avril 2009 à 13:20
je me suis dis qu ' il etait plus judicieux de placer ça dans mon code :
<script language='text/JavaScript1.2'>
timer = setInterval('envoieRequete("shoutbox.php","page");', 10000);
</script>
par contre ça ne marche pas non plus un peu d ' aide serait bienvenue , s ' il vous plait
ça me parait compliqué , mais puissant comme script , joli à voir et economique en bande passante !!!!
j ' ai vraiment besoin de faire ce rafraichissement auto
10 avril 2009 à 08:40
im manque peut etre la partie utilistion de la fonction ???
10 avril 2009 à 06:42
Moi j'utilise cela :
<script language='text/JavaScript1.2'>timer = setInterval('FonctionAjax("TOTO")', 10000);</script>
10000 est le temps en ms de l'interval du timer.
10 avril 2009 à 02:08
paar contre j ' ai un autre petit probleme , je voudrais faire un rafraichissement entirement automatique toutes les 30 minutes , avant j ' utilsais
echo "<meta http-equiv="refresh" content="1800; URL=mapage.php">";
mais maintenant je ne vois pas la solution , un autre script ajax peut etre à moins qu ' il y ait plus simple bien sur ??
10 avril 2009 à 01:07
je precise que je suis tres novice en la matiere , pour cause c ' est le premier script ajax que j ' utilise .
je vous prierai donc d ' etre vraiment le plus clair possible svp .
merci d ' avance pour vos reponses et ce super site !!!
28 mars 2009 à 12:17
Après avoir testé la manière pour moi la plus simple à mettre en oeuvre, j'ai juste ajouter à la suite des paramètres de l'url '&toto='+Math.round(Math.random()*10000) et tout fonctionne impec.
Merci beaucoup à vous tous, cela m'a bien aidé...
28 mars 2009 à 10:37
@+ JLN
27 mars 2009 à 22:26
Pour le deuxième truc remplacer SRC="chargacceuil.html" par SRC="nom de la page à charger par défault.html"
27 mars 2009 à 22:24
pour le bouton:
getElementById('nom de l'iframe')
L'id de l'iframe et l'attribut name doivent être les mêmes au cas ou je me planterai
27 mars 2009 à 22:21
J'avais réeussis à faire marcher correctemment le script mais il y a trop de pbl surtout pour le référencement et l'absence de bouton retour du navigateur
Une technique mieux:
Dans la page chargée:
__________________________________________________________________________________
Entre <head></head> :
<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)
{
document.location.href = 'page parent.html';
}
</SCRIPT>
_________________________________________________________________________________
dans body de la page parent:
Oups ça ne marche pas. Vous utilisez probablement un navigateur peu conventionnel.
__________________________________________________________________________________
Pour faire un lien bouton dans n'importe quelle page:
Toutes les pages seront chargées dans l'iframe. Même résultat sans les défaults que ce script pourris. Le problème de l'iframe pour l'indexation est résolu par le premier script de ce post.
Good luck. Tu peux reposter si tu en chie
27 mars 2009 à 19:10
Où "249582068" est une valeur pouvant être un hashage de timestamp ou n'importe quelle valeur générée dynamiquement (et qui change donc à chaque création de l'URL).
27 mars 2009 à 16:55
J'essaye d'utiliser ce script, ca marche, mais une seule fois, après les pages affichées sont chargées depuis le cache, mais du coup ma requete sql ne 'execute qu'une fois. Ma question, comment obliger le navigateur à afficher toujours la page venant du serveur ??? Pour toutes réponses merci.
23 févr. 2009 à 18:47
Difficile;
Pour mon compte ça marche pas sur IE 7 et pour le bouton retour...
Heeeeelp
13 nov. 2008 à 07:43
Aujourd'hui avec les librairies tel que prototype, jQuery, Mootools ou encore Scriptaculous, on peut très facilement mettre en place de l'ajax, dont des requêtes XMLHttpRequest. Qui plus est, c'est évidemment compatible par defaut full-browser et on peut y ajuster les paramètres que l'on souhaite très simplement.
Je vous laisse la doc, si vous souhaiter vous y mettre. Je vous recommande l'utilisation de jQuery qui est pour moi, la plus grande lib et la plus répandue sur la toile, qui plus est c'est la plus légère au niveau du poids.
http://docs.jquery.com/Ajax
Cordialement,
Badoux Christophe
12 nov. 2008 à 21:54
20 sept. 2008 à 14:57
20 sept. 2008 à 14:55
{
var xhr_object1 = null;
var position1 = id1;
var xhr_object2 = null;
var position2 = id2;
if(window.XMLHttpRequest) {
xhr_object1 = new XMLHttpRequest();
xhr_object2 = new XMLHttpRequest();
} else
if (window.ActiveXObject) {
xhr_object1 = new ActiveXObject("Microsoft.XMLHTTP");
xhr_object2 = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la **premiere** requete vers la page désirée
xhr_object1.open("GET", url1, true);
xhr_object1.onreadystatechange = function(){
if ( xhr_object1.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position1).innerHTML = xhr_object1.responseText;
}
}
// dans le cas du get
xhr_object1.send(null);
// On ouvre la **deuxieme** requete vers la page désirée
xhr_object2.open("GET", url2, true);
xhr_object2.onreadystatechange = function(){
if ( xhr_object1.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position2).innerHTML = xhr_object2.responseText;
}
}
// dans le cas du get
xhr_object2.send(null);
__________________________________________________
Là j'ai dupliqué tout le code, mais tu peux réutiliser le même xhr_object pour les deux requêtes. Problème : ce ne sont pas des appels simultanés et il faut prévoir le fait que la première puisse échouer.
19 sept. 2008 à 14:15
Merci.
19 sept. 2008 à 14:01
Voici une action de modification du contenu :
document.getElementById("div_qui_existe").innerHTML = xhr_object.responseText;
Il suffit d'en mettre une autre qui modifie un autre DIV, et éventuellement de dupliquer l'objet XHR à partir duquel il récupère le contenu à mettre.
19 sept. 2008 à 12:49
je débute tout juste l'Ajax. J'ai testé ce code qui fonctionne bien, du coup je voudrais savoir comment faire pour qu'un seul lien charge deux pages dans des div différents ? En fait ça doit recharger le div ou se trouve le lien, plus un div dans la page.
Merci d'avance pour votre aide.
27 juil. 2008 à 13:50
Dans ton cas, l'adresse « file:\\mon_repertoire » ne fait pas partie du même domaine que 127.0.0.1 ou localhost.
27 juil. 2008 à 11:42
je n'arrive pas à faire "tourner" cette page en local.
j'appelle la page stockée sur mon disque.
IE la charge.
quand je clique sur : test ou test2
-> accès refusé
quand je mets la page dans mon serveur local(127.0.0.1) ca fonctionne car il est en "site de confiance".
J'aimerai que cela fonctionne en appelant la page directement de mon disque ...
j'ai beau mettre "file:\\mon_repertoire dans site de confiance, il ne le prend pas...
Merci de vos conseils
22 mai 2008 à 13:42
je te félicite pour se script , c'est exactement ce que je cherchai et ca marche bien !
néanmoins je suis débutant en Ajax et du coup d'autres petits soucis apparaissent
je voudrai avoir votre avis pour les régler :
- 1 les caractères spéciaux : il suffit de codé en propre en html (réglé)
- 2 vous parlez de mettre la page précédente dans une variable pour ne pas bloquer le bouton précédent
comment fait on plus précisément ? je ne vois pas !
sinon merci de toutes vos réponses elle m'ont bien été utile jusqu'ici
14 juin 2007 à 17:31
C'est une question d'encodage des données envoyées... .. .
@ tchaOo°
14 juin 2007 à 16:38
Merci beaucoup pour ce script qui fonctionne pas mal du tout.
J'ai malgre tout un probleme : les caractère spéciaux ne passent pas (caractères avec accents) et les js non plus.
Je m'explique :
Dans mon index.php, j'ai
---------------index.php------------------------
<html>
<head>
<title>blabla</title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script type='text/javascript' language='javascript'>
function httpRequest(div,file){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var div = div;
var file = file;
xhr_object.open("POST", file, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4){
//alert(file);
document.getElementById(div).innerHTML = xhr_object.responseText;
}
}
xhr_object.send(null);
}
</script>
<?php include('musique/lecteur.php');?>
<?php include('menu.php');?>
<?php include('pied.php');?>
</html>
----------------------------------------------
Et dans mon accueil.php j'ai :
----------------accueil.php-------------------
<?php
du code pour récupérer des valeurs dans une BD. ce code fonctionne.
?>
</script>
..[du code pour afficher en défilement les valeurs récupérées ci-dessus]..
<script language=\"JavaScript1.2\">
..[du texte dont des caractère é à è ê etc]..
----------------------------------------------
Et le résultat que j'obtiens au chargement de la page, c'est que accueil.php se charge bien dans le div "cadre" de index.php mais le texte défilant n'est pas présent et les caractères spéciaux (+ les 2 caratères suivants) sont remplacés par "?".
Pour faire un essai, j'ai fait un
<?php include('accueil.php'); ?>
et cela fonctionne sans probleme.
Je ne sais pas trop à quoi ca pourrait etre dû. Est-ce que quelqu'un pourrait m'aider ??
Merci d'avance.
Pour info, j'utilise cette fonction et non pas des includes parce que j'ai un menu en flash et que je met donc le code suivant sur mon bouton 'accueil'. (et semblable pour les autres boutons...)
on (release){
getURL('javascript:httpRequest('cadre','accueil.php')');
}
Je ne veux pas recharger toute la page car elle contient un div dans lequel j'ai mis un mini-lecteur de musique (en flash aussi) et je ne veux pas que la chanson redemarre dès que je change de page.
30 janv. 2007 à 16:10
Tout dépend de ce que tu veux... comment tu veux le déployer... quel public tu veux toucher et quels contraintes peuvent découler de ce même public cible... et si tu veux être au norme W3C... .. .
@ tchaOo°
30 janv. 2007 à 15:59
"Euh... les (i)frames... les language serveur... lOoOL... .. . :oD
Bon ok je sors... .. . :oP
@ tchaOo°"
Bon, j'ai vu que les frames c'est pas bien et patati patata...soit,oki... je développe actuellement pas mal avec les iframes inclues dans les div, exemple :
Me demandant si les iframes au final, c'eest pas un peu comme les frames, et là je vois le XMLHTTPRequest! Ô Miracle!! cela existe donc?! Bon je commence à me renseigner, et je tombe sur votre page... Euh.... C'est bien ou c'est pas bien?
Et ma solution, c'est bien ou c'est pas bien?
Voilà, merci d'avance pour vos réponses ^^
11 janv. 2007 à 12:19
pour les pages contenant des formulaires avec la methode "post" ou "get" ya eu des problemes,
try to find a solution ;)
4 janv. 2007 à 14:08
23 nov. 2006 à 11:49
20 nov. 2006 à 17:51
20 nov. 2006 à 17:43
<?php
echo'
':
bla
bla
bla
bla
bla
echo"<center><form action=\"add_annonce.php\" method=\"post\" enctype=\"multipart/form-data\" style='margin-top: 0px; margin-bottom: 0px' name='cat' onSubmit='return(VerifForm(this))'>,
bla
bla
bla
bla
* Champs obligatoires,
</form>
</center>";
}
echo"
"
Et je centre tous dans tete.php site
20 nov. 2006 à 16:50
20 nov. 2006 à 16:08
voila l'erreur
Found
the document has moved here
20 nov. 2006 à 15:44
Bon ok je sors... .. . :oP
@ tchaOo°
20 nov. 2006 à 15:41
20 nov. 2006 à 13:39
cf. DHTML
20 nov. 2006 à 13:36
Mais bon puisque c'est fait (;o))... je pense que tout dépend de la définition du mot dynamique... dynamique ne veux pas forcement dire généré dynamiquement... ainsi on peut dire que javascript par le biais de la gestion des evenement peux rendre plus dynamique une page bien que cette dernière soit statique... .. . ;o)
@ tchaOo°
20 nov. 2006 à 12:56
20 nov. 2006 à 12:21
Pour le reste si la génération en tache de fond de la réponse est dynamique on peut considérer que le contenu est dynamique... tout dépend de quel dynamise tu parle... celui de la réponse ou celui de la page visualisée... .. .
Pour le reste c'est un détail dont on se fout un peu... non... ton commentaire n'a pas vraiment lieu d'être... .. .
@ tchaOo°
20 nov. 2006 à 09:32
20 nov. 2006 à 09:18
En fait tout ce qui sera généré dans le fichier generation.php sera mis à la place du contenu du div 'cibleDeLaFonction'
20 nov. 2006 à 09:00
ce que je veux comment cela ?? car je suis pas très spécialiste du javascript ??? d'aillieur je devrais m'interesser plus a cela ???
19 nov. 2006 à 21:17
</form>
Dans le onSubmit tu mets ce que tu veux (après "javascript:")
19 nov. 2006 à 20:38
19 nov. 2006 à 20:31
merci
19 nov. 2006 à 19:37
19 nov. 2006 à 18:16
19 nov. 2006 à 15:14
19 nov. 2006 à 10:27
comment faire pour utiliser cette même fonction merci de vos réponse???
13 nov. 2006 à 15:12
comme cela svp???
exemple:
[#
précédent]
23 août 2006 à 15:53
2 solution... gérer en fonction du module comme tu l'a dit avec des if, un switch ou un constructeur prenant le nom du module en paramètre... ou alors faire renvoyer par le serveur un tableau javascript contenant une entrée avec le contenu html et une entrée avec le code javascript à executer... l'un dans l'autre c'est un peu du bricolage... .. .
@ tchaOo°
22 août 2006 à 23:17
Merci
8 août 2006 à 09:43
J'ai contourné le problème d'une façon sensiblement différente, lorsque la page est affichée, j'ai fais appel à un constructeur dans le fichier JS du contrôle (que j'appelle dans le index.php), mais là, je me doute que si j'ai plusieurs controles avec plusieurs constructeurs donc, je vais avoir un soucis, donc y a t il moyen d'appeler un constructeur en particulier (sans avoir recours au if, parceque je compte avoir pas mal de controles), et sans passer de paramètre genre : constructeur('nom du contrôle') + un test dans chaque constructeur ?
Merci en tout cas pour ton aide KANKRELUNE
gdu3744 : j'ai eu aussi du mal avec les chemins relatifs au déébut, une vraie galère, maintenant ça va. Merci de ton aide.
7 août 2006 à 19:41
Oups c'est pas très clair... .. .
en fait le code javascript est chargé en même temps que la page et est interprété (déclaration des fonction, etc) ensuite il ne l'est plus... hormis si tu utilise eval... .. .
@ tchaOo°
7 août 2006 à 19:39
deux alternatives s'offrent à toi dans ce cas... charger toute tes fonctions javascript en même temps que la page ou alors lancer deux requetes ajax... l'une retournant le code html pour la mise à jour de ta page l'autre retournant du code javascript à passer dans un eval()... une troisième option est possible bien que plus crade c'est de mettre une balise script avec un id dans ton index et de changer dynamiquement le fichier cible en fonction de la page chargée via Ajax... .. .
@ tchaOo°
7 août 2006 à 18:40
peut etre que ca peut te mettre sur la piste.
Bonjour de Montreal !
7 août 2006 à 18:05
pour chaque controle, j'ai un repertoire dans lequel j'ai 1 PHP, 1 CSS, 1 JS, 1 TPL
Pour la page principale, j'ai 1 PHP, 1 JS
Donc, j'ai un fichier index.php qui est la page principale, sur cette page je place des balises qui sont des références à mes controles (elles doivent être remplacées par mes controles), à la fin de cette page, je lance la fonction Javascript de remplacement de ces balises.
Dans cette fonction, je fais appel au fichier PHP du contrôle concerné, ce fichier va implémenter le template et finalement l'envoyer à la fonction javascript en retour par le XMLHTTPRequest.
Bon donc, j'ai réussi à afficher mon contrôle (déplacement du référencement de l'objet template dans le fichier PHP du contrôle), mais l'initialisation des variables contenues dans le fichier javascript du controle ne sont pas appellées, je m'explique, lorsque le contrôle est affiché, je le place à un endroit donné, et bien malgré l'appel à la fonction javascript à la fin du template, la fonction n'est pas exécutée, d'où mon soucis, le CSS référencé dans le fichier index.php est bien pris en compte, mais pas le fichier JS spécifique au contrôle, et si je déplace le référencement de ce fichier JS dans le fichier PHP du controle, pareil.
Donc je pense qu'il peut y avoir un soucis de chemin, mais je n'ai pas d'erreur de chargement.
7 août 2006 à 17:19
J'ais du mal à comprendre la fdaçon dont tu procede... qu'est ce que tu appel références au template dans ton index.php... .. ?
De quel chemin tu parle ? celui de ta requete ajax... .. ?
@ tchaOo°
7 août 2006 à 15:46
Voici le détail :
Je charge 'Index.php', il contient la balise à remplacer, les références au template, ainsi que la création de l'objet.
De là, je lance la fonction javascript de remplacement.
J'appelle la page PHP du contrôle, il là il plante sur l'enrichissement de l'objet.
J'ai regardé dans mes déclarations, je vois rien.
le chemin doit il faire référence au fichier de base ('Index.php') ou au fichier PHP du controle ?
Merci
7 août 2006 à 15:09
@ tchaOo°
7 août 2006 à 13:52
J'ai créé un widget utilisant 4 fichiers (PHP, TPL, CSS, JS), le style de template utilisé est Smarty. Tout fonctionne très correctement si j'appelle le fichier PHP référence directement. Si par contre je met une balise qui doit être remplacée par cette feuille en utilisant cette fonction, j'ai une erreur. J'ai donc essayé de charger une feuille contenant uniquement des éléments HMTL, et là ça semble fonctionner correctement, il m'apparaît donc clairement que le système de template n'est pas compatible avec cette fonction. Si quelqu'un connait un moyen de contourner ce problème en gardant ma structure actuelle, je suis preneur.
Merci
7 août 2006 à 12:56
J'ai un petit soucis, j'essai de charger des contrôles (Type Dojo) avec cette méthode, mais il semble que l'utilisation de template ne soit pas possible ! Vous confirmez ?
Merci
6 août 2006 à 18:01
Qq'un arrive à faire fonctionner un menu deroulant dynamique comme le miens? si oui comment a-t-il fait?
Merci d'avance.
6 août 2006 à 15:01
25 juil. 2006 à 20:50
j'ai un probleme sur cette page php. Il m'est impossible d'afficher mon resultat il s'efface aussitot. QQun saurait pourquoi?
page principale.php
<script type= "text/javascript">
function recharge(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if (document.getElementById(position) && xhr_object)
{
if (xhr_object.readyState == 4)
{
if (xhr_object.status 200 || xhr_object.status 304)
document.getElementById(position).innerHTML = xhr_object.responseText;
else
document.getElementById(position).innerHTML = 'Error ' + xhr_object.status + ' : ' + xhr_object.statusText;
}
else document.getElementById(position).innerHTML = 'Chargement en cours... veuillez patienter... .. .';
}
}
// dans le cas du get
xhr_object.send(null);
}
</script>
<tr>
<td>
O.A.M :
<select name ='oam' id='oam' style='width:240' >
<?php
echo "<option value=''></option>";
require("connect_atelier.php");
$req = 'SELECT DISTINCT oam FROM oam ';
$res = mysql_query($req,$connect) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row['oam']."'>".$row['oam']."</option>";
}
echo "</select>";
?>
</td>
<td>
-------------------------------------------------------------
et ma requete_oam.php
<?php
echo "<select name='oam' id='oam' style='width:240'>";
echo "<option value=''></option>";
require("connect_atelier.php");
$req = 'SELECT DISTINCT oam FROM oam ';
$res = mysql_query($req,$connect) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row['oam']."'>".$row['oam']."</option>";
}
echo "</select>";
?>
---------------------------------------------------------
Tout marche bien a part le fait que mon resultat s'efface aussi sec. i je maintien le click de souris j'ai mais valeur mais des que je relache ca s'efface bizarre. Je comprends rien
Merci si vous pouvez m'aider
13 juil. 2006 à 05:01
monObject.responseText => le format texte, html...
monObject.responseXML => le format xml...
@ tchaOo°
13 juil. 2006 à 04:20
J'avais trouvé un peu la meme chose mais pour rapatrier du XML mais pas une page html complete.
Cool ! ca fait 2h que je cherche...(vous avez dit productivité...;o))
12 juil. 2006 à 14:35
sinon jpense utilisé un framework ou sinon je viens de tomber sur RSH (Really Simple Historic)
12 juil. 2006 à 13:13
@ tchaOo°
12 juil. 2006 à 11:47
j'utilise la meme chose dans mon site internet. sauf que en utilisant cette solution, il est impossible de faire un "retour arriere" d'aller à la "page précédente" en cliquant dans le bouton du navigateur.
je voulais savoir si quelqu'un avait une solution?
merci par avance.
20 juin 2006 à 16:27
<?php include($_GET['pageID']); ?>
"
jolie faille...
sur http://coucou747.hopto.org catégorie php, il y a un lien vers une page qui explique différentes failles...
20 juin 2006 à 16:21
3 juin 2006 à 15:44
@ tchaOo°
3 juin 2006 à 12:48
2 juin 2006 à 23:52
xhr_object.open("POST", file, true);
xhr_object.onreadystatechange = ... .. .
xhr_object.send("mavar1=pwet&mavar2=plop&mavar3=blurp..."); (pense à échapper les caractères spéciaux)
@ tchaOo°
2 juin 2006 à 23:05
1 juin 2006 à 14:13
Et pour le problème de compatibilité avec IE, dans IE7 l'objet xmlhttprequest sera integré en NATIF.
Et pour finir, "les navigateurs qui bloquent l'accés a des sites externe" c'est un parametre dans les options... dans IE c'est "accés aux sources de données sur plusieurs domaines" je crois... je n'ai jamais tenté de l'activer, mais vu que lors d'une execution locale ça marche... on peut en deduire que...
=)
29 mai 2006 à 20:44
@ tchaOo°
29 mai 2006 à 20:19
Ensuite Pour : kankrelune :
j'ai peut-etre une idée pour toi, est-ce que tu as esasyer d'ajouter dans ta focniton qui s'occupe de gérer le XMLHttpRequest d'initailiser une varialbe globale (ex: var enTraitement true) et lors de l'appel de la focntione a nouveau tu vérifi si cette variable est egal a true si oui tu arrete l'éxécutin de la fonction... bine sur il faut que lors que tu effectue la vérification de (xhr_object.readyState 4) tu affecte false a ta variable..
Si une idée comme sa, parce que j'ai jamais eu le problème donc tu parle sur mes applications..
Sur ce ++
16 mai 2006 à 01:49
Concernant l'instanciation de l'objet moi je fais comme suit...
var xhr_object = false;
if (window.XMLHttpRequest)
{
xhr_object = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
var ieversions = ['Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var i=0; !xhr_object && i<ieversions.length; i++)
{
try
{
xhr_object = new ActiveXObject(ieversions[i]);
}
catch(e)
{
xhr_object = false;
}
}
}
Concernant la requete il peut être interressant de gérer les erreurs retournées... dans ce cas...
if (document.getElementById(position) && xhr_object)
{
if (xhr_object.readyState == 4)
{
if (xhr_object.status 200 || xhr_object.status 304)
document.getElementById(position).innerHTML = xhr_object.responseText;
else
document.getElementById(position).innerHTML = 'Error ' + xhr_object.status + ' : ' + xhr_object.statusText;
}
else document.getElementById(position).innerHTML = 'Chargement en cours... veuillez patienter... .. .';
}
Reste un problème... principalement avec firefox... si une requete est envoyée alors que la précédente n'a pas fini d'être traitée (ex : rafraichissement d'un chat) et bien cela crée un belle erreur js... il faut alors réussir à controller l'état d'avancement de la requete en cours et si elle traine utiliser la fonction xhr_object.abord()... et là je sèche un peu... .. .
@ tchaOo°
9 mai 2006 à 08:57
XMLHttpRequest permet cependant la construction de pages complexes et modulaires en ménageant la bande passante.
8 mai 2006 à 19:46
c'est super éfficace mais le top, ca serai de rajuter un éffet de transition (du style powerpoint, j'ai vu sa un jour sur un site web,mais j'ai oublié l'URL) .
ca change la vie aux utilisateur basiques (chef de service informatique,non initiés a la programmation et habitués a la patience) .
grand luxe !
8 mai 2006 à 12:45
Tu peux installer des frameworks (lib) AJAX, pour te faciliter la tâche!
A++
8 mai 2006 à 12:39
Il est vrai que le métier de devellopeur et rude, prog>debog>prog>debog... voila une journée d'un programmeur.
C'est particulièrement IE6 qui pose problème !
Mais patience Internet Explorer accéptera mieu le code dans un avenir très proche :-)!
On espère que d'ici quelques années tout les naviguateur ce seront mis au W3C :-)
en attendant ce jour, voila un exemple qui roule à merveille ! :-)
function httpRequest(div,file){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var div = div;
var file = file;
xhr_object.open("POST", file, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4){
//alert(file);
document.getElementById(div).innerHTML = xhr_object.responseText;
}
}
xhr_object.send(null);
}
a plus !
8 mai 2006 à 12:37
8 mai 2006 à 12:05
Après pour appeler les méthodes c'est pareil (l'objet c'est le même).
8 mai 2006 à 12:01
7 mai 2006 à 21:02
merci pour cette précision.
Have Fun ;)
7 mai 2006 à 20:28
Ex: Si ton script XMLHttpRequest est sur un server "X" il peut faire des requêtes sur le site X, mais pas sur le "Y" ou "Z".
Quand je dévellope des scripts JS/PHP du genre Chat, c'est assez pratique, mais point de vue compatibilité c'est pas super et même difficile, car certains navigateurs supportent mal cette fonction.
7 mai 2006 à 15:47
j'ai pas l'impression qu'au niveau compatibilite ce soit top (FF retourne xhr_object.open operation non permise).
Have Fun ;)
7 mai 2006 à 14:41
Je voudrai juste savoir si elle est fiable, si elle est bien protégée etc...!!
Car je commence a l'utiliser partout sur mon site!!
Merci !
7 mai 2006 à 00:25
Oui sur le coup de l'emplacement du message c'est vrai que je n'ai pas assuré, je suis vraiment con... je suis tellement sur des forum php que je me persuade d'y etre même si j'y suis pas ! Veuillez m'excusez !:-o
Au sujet de l'AJAX, ce n'est qu'un terme marketing pour relancer ces vieilles functions javascript que l'on avait oublié !
Voila à bientôt et désolé pour le dérangement !;-)
bonne nuit
6 mai 2006 à 22:40
Donc c'est tout simplement l'utilisation de Javascript dans le but de transmettre de l'information sous forme XML, de manière asynchrone (c'est-à-dire grâce l'utilisation d'une méthode quelconque - ici un objet XMLHttpRequest - qui effectue cette opération n'importe quand dans le code).
Je remercie au passage l'auteur, Atlante34, pour en avoir fourni un exemple concret.
En ce qui concerne le standard W3C, il faut savoir que XMLHttpRequest n'en fait pas partie. D'après des recherches perso, le W3C aurait développé un moyen similaire...
6 mai 2006 à 20:28
6 mai 2006 à 19:18
D'autre part, on est bien sur le forum javascriptfr.com, et il y a du javascript, non ?
6 mai 2006 à 19:13
Perso en PHP, je ferai un simple include dans un div, serte moin dynamique du fais que cela se passe côté serveur et non client !
exemple simple en php :
<?php include($_GET['pageID']); ?>
L'exemple ci-dessus ce n'est même pas du php et encors moin de l'AJAX ! Mais du simple XMLHttpRequest qui existe depuis longtemps !
enfin tout ca pour dire que ca ne devrai pas être placé sur ce forum ;-)
A++
6 mai 2006 à 15:28
dynamique coté client, ça n'a selon moi pas de sens, disons que cette source permet aux gens d'ajouter une fonctionalitée comme l'abscence de rechargement...
tu devrais quand même insérer un parseur pour enlever les balises head, et n'insérer que le contenu entre et comme ça, tu pourrais charger tout style de site (mais le Css pourrait géner...)
ou sinon, tu peux ajouter un effet genre : la nouvelle page est affichée à coté avec une opacitée à 0.5, puis elle vient dessus, puis l'opacité des deux pages s'inverse... puis la page précédente prend comme opacité 0 et la nouvelle 1... bref, on peut faire des effets assez réussi...
je noterais bien 8, mais j'attend... tu ne gères pas les erreurs éventuelles, comme l'abscence de xmlhttprequest sur le navigateur, j'attend la prochaine mise à jour avant de noter...
6 mai 2006 à 15:16
GTR en force ...
6 mai 2006 à 14:25
Le principe d'AJAX c'est que le contenu d'une page extérieure peut être fusionnée à la page consultée sans que le navigateur recharge la page consultée. Je ne sais pas si "dynamique" est le mot approprié ; sinon "dynamique côté client".
Pour y ajouter le "dynamique côté serveur", il faudrait que la page extérieure soit du PHP, ASP ou autre. Ainsi on aurait les deux côtés du dynamique : "client" grâce à AJAX et "serveur" grâce à PHP.
5 mai 2006 à 16:06
5 mai 2006 à 16:02
Le principe de onload est de faire par exemple un site WEB dynamique, sans utiliser les frames.
Ici le onload charge les vontenus des div, exemples des menus en haut et a gauche, et permet ensuite de charger rien que le milieu.
5 mai 2006 à 16:00
Alors qu'avec ton "onload" le contenu est directement présent sur la page au chargement.
5 mai 2006 à 15:53
Par exemple, si on veut que la page se charge dans le div au demarrage de la page, il suffit de mettre a la place de :
mettre,
Permet d'enlever le lien et de rendre la page plus dynamique ...
5 mai 2006 à 14:12
5 mai 2006 à 13:47
L'indexation peut ne pas être une priorité.. Tout dépend ce qu'on veut faire
Merci en tout cas
5 mai 2006 à 13:06
5 mai 2006 à 12:23
niveau compatibilité avec les browsers/systèmes connus, ca donne quoi ?
5 mai 2006 à 11:50
si tu fais envoieRequete('resultat.php','centre');
la page resultat.php s'affichera dans le div dont le id est 'centre'.
C'est mon premier prog en AJAX, donc si il y a des remarques à faire ...
5 mai 2006 à 11:12
A corriger la ligne
xhr_object = new ActiveXObject(Microsoft.XMLHTTP);
par
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
Sinon intéréssant...
5 mai 2006 à 11:05
envoieRequete('resultat.php','centre');
et le resultat de la page php ce mettra dans le div d'id "centre" ?