Problème ajax récupération ligne plusieurs fichiers
Kev-sky62
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
j 'ai mis en place une liste déroulante qui permet de choisir 2 options (anglais ou francais) qui récupère le contenu de deux fichiers (l 'un est en anglais l 'autre en français).
Lorsque je vais sur la page d 'accueil le texte est en anglais, je vais sur la liste déroulante je choisis french le texte est traduit en français. Ensuite je remet anglais, le texte est retraduit en anglais c 'est parfait. Par-contre lorsque je remet français encore une fois, rien ne se passe, j 'aurai voulu avoir votre aide pour corriger ce problème s 'il vous plaît.
C 'est surement un problème avec les <div> qui sont collés.
Voici le code de home.php
include "./utils/ajax/en.html";
include "./utils/ajax/fr.html";
echo "<div id='text1home'>
<table width='300px'>
<tr><td>
<div id='en'>
<div id='fr'>Foundation Trust cares for more than one million patients a year
from our local community and further afield. Patients come to us with a wide range
of medical needs and from diverse ethnic and cultural backgrounds
</div></div>
</tr></td>
</table></div>";
echo "<p class='language'>Change Language: <br />
<select name='language'>
<option value='en' name='en' onclick='getEnglish()'> English</option>
<option value='fr' name='fr' onclick='getFrench()'> French</option>
</select>
</p> ";
Celui de fr.html
<script language="javascript" type="text/javascript">
function getFrench()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("fr").innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById("fr").innerHTML="Waiting for Response Server";
}
}
xmlhttp.open("GET","./utils/ajax/french.txt",true);
xmlhttp.send();
}
</script>
Le fichier "en.html" est équivalent à celui-ci avec le chemin (./utils/ajax/english.txt) qui change et les getElementById mais de toute façon le problème ne vient pas de ses fichiers vu qu 'il s 'exécute bien au début.
Merci pour votre attention.
j 'ai mis en place une liste déroulante qui permet de choisir 2 options (anglais ou francais) qui récupère le contenu de deux fichiers (l 'un est en anglais l 'autre en français).
Lorsque je vais sur la page d 'accueil le texte est en anglais, je vais sur la liste déroulante je choisis french le texte est traduit en français. Ensuite je remet anglais, le texte est retraduit en anglais c 'est parfait. Par-contre lorsque je remet français encore une fois, rien ne se passe, j 'aurai voulu avoir votre aide pour corriger ce problème s 'il vous plaît.
C 'est surement un problème avec les <div> qui sont collés.
Voici le code de home.php
include "./utils/ajax/en.html";
include "./utils/ajax/fr.html";
echo "<div id='text1home'>
<table width='300px'>
<tr><td>
<div id='en'>
<div id='fr'>Foundation Trust cares for more than one million patients a year
from our local community and further afield. Patients come to us with a wide range
of medical needs and from diverse ethnic and cultural backgrounds
</div></div>
</tr></td>
</table></div>";
echo "<p class='language'>Change Language: <br />
<select name='language'>
<option value='en' name='en' onclick='getEnglish()'> English</option>
<option value='fr' name='fr' onclick='getFrench()'> French</option>
</select>
</p> ";
Celui de fr.html
<script language="javascript" type="text/javascript">
function getFrench()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("fr").innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById("fr").innerHTML="Waiting for Response Server";
}
}
xmlhttp.open("GET","./utils/ajax/french.txt",true);
xmlhttp.send();
}
</script>
Le fichier "en.html" est équivalent à celui-ci avec le chemin (./utils/ajax/english.txt) qui change et les getElementById mais de toute façon le problème ne vient pas de ses fichiers vu qu 'il s 'exécute bien au début.
Merci pour votre attention.
A voir également:
- Problème ajax récupération ligne plusieurs fichiers
- Partager photos en ligne - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Mètre en ligne - Guide
- Fichiers epub - Guide
- Wetransfer gratuit fichiers lourd - Guide
9 réponses
Bonsoir, merci de me répondre mais je ne sais pas de quelle question vous voulez parler, je travaille avec wamp et notepadd
Ah si excusez-moi je découvre ce système voici le rapport
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 70
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 70
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 66
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 70
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 70
Error: document.getElementById("fr") is null
Source File: http://127.0.0.1/hopital/
Line: 66
pourquoi faire plusieurs fct JS une pour chaque langue, une selue suffit en lui passant en argument la langue voulue:
...
<table width='300px'>
<tr><td>
<div id='affichage'>
</div>
</tr></td>
</table></div>
<p class='language'>Change Language: <br />
<select name='language'>
<option value="en" onclick="getLanguage('english');"> English</option>
<option value="fr" onclick="getLanguage('french');"> French</option>
</select>
</p>
Celui de fr.html
<script language="javascript" type="text/javascript">
function getLanguage(langue)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('affichage').innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById('affichage').innerHTML="Waiting for Response Server";
}
}
xmlhttp.open("GET","./utils/ajax/"+langue+".txt",true);
xmlhttp.send();
}
</script>
Voici le code maintenant
home.php
include "./utils/ajax/language.html";
echo "<div id='text1home'>
<table width='300px'>
<tr><td>
<div id='affichage'>
Foundation Trust cares for more than one million patients a year
from our local community and further afield. Patients come to us with a wide range
of medical needs and from diverse ethnic and cultural backgrounds
</div>
</tr></td>
</table></div>";
echo "<p class='language'>Change Language: <br />
<select name='language'>
<option value='en' name='english' onclick='getLanguage(english)'> English</option>
<option value='fr' name='french' onclick='getLanguage(french)'> French</option>
</select>
</p>";
language.html
function getLanguage(langue)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("affichage").innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById("affichage").innerHTML="Waiting for Response Server";
}
}
xmlhttp.open("GET","./utils/ajax/"+langue+".txt",true);
xmlhttp.send();
}
home.php
include "./utils/ajax/language.html";
echo "<div id='text1home'>
<table width='300px'>
<tr><td>
<div id='affichage'>
Foundation Trust cares for more than one million patients a year
from our local community and further afield. Patients come to us with a wide range
of medical needs and from diverse ethnic and cultural backgrounds
</div>
</tr></td>
</table></div>";
echo "<p class='language'>Change Language: <br />
<select name='language'>
<option value='en' name='english' onclick='getLanguage(english)'> English</option>
<option value='fr' name='french' onclick='getLanguage(french)'> French</option>
</select>
</p>";
language.html
function getLanguage(langue)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("affichage").innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById("affichage").innerHTML="Waiting for Response Server";
}
}
xmlhttp.open("GET","./utils/ajax/"+langue+".txt",true);
xmlhttp.send();
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionecho "<p class='language'>Change Language: <br /> <select name='language'> <option value='en' name='english' onclick='getLanguage(\'english\')'> English</option> <option value='fr' name='french' onclick='getLanguage(\'french\')'> French</option> </select> </p>"; //english french sont des valeurs que tu passes à la fonction il faut donc qu'elle soient entre ' //comme il y en a déja dans la chaine il faut les echapper
pour simplifier le codage et eviter ces pb d'échappement des '
sort du php et met le html sans passer par echo:
sort du php et met le html sans passer par echo:
<?php
include "./utils/ajax/language.html";
?>
<div id='text1home'>
<table width='300px'>
<tr><td>
<div id='affichage'>
Foundation Trust cares for more than one million patients a year
from our local community and further afield. Patients come to us with a wide range
of medical needs and from diverse ethnic and cultural backgrounds
</div>
</tr></td>
</table></div>
<p class="language">Change Language: <br />
<select name="language">
<option value="en" name="english" onclick="getLanguage('english');"> English</option>
<option value="fr" name="french" onclick="getLanguage('french');"> French</option>
</select>
</p>
Bonsoir, j 'ai de nouveau besoin votre aide concernant Ajax.
Je m 'explique:
xmlhttp.open("GET","./utils/ajax/"+langue+".txt",true);
cette fonction permet de récupérer le contenu du fichier dans sa totalité.
J 'aurais voulu savoir si par exemple en agissant sur une page html (ou il y aurait des paragraphes de texte avec des div les identifiants) on ne pourrait qu 'afficher QUE une partie du fichier html et non plus tout son contenu comme avant
Merci de votre attention.
Je m 'explique:
xmlhttp.open("GET","./utils/ajax/"+langue+".txt",true);
cette fonction permet de récupérer le contenu du fichier dans sa totalité.
J 'aurais voulu savoir si par exemple en agissant sur une page html (ou il y aurait des paragraphes de texte avec des div les identifiants) on ne pourrait qu 'afficher QUE une partie du fichier html et non plus tout son contenu comme avant
Merci de votre attention.
tu peux essayer en masquant par defaut tous les div de ta page langue.txt
puis tu fait afficher après la réponse ajax le div que tu veux
<div id="id_xxxxx" style="display:none">..... </div> <div id="id_yyyyy" style="display:none">..... </div> <div id="id_zzzzz" style="display:none">..... </div> //etc
puis tu fait afficher après la réponse ajax le div que tu veux
.....
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("affichage").innerHTML=xmlhttp.responseText;
//tu fais afficher seulement le div concerné, pas ex id_yyyyyy
document.getElementById("id_yyyyyy").style.display='block';
}
....