par
béka » 24 sept. 2007, 09:07
Bonjour tout le monde,
je voudrais permettre à un utilisateur de modifier du contenu en anglais et en français (pour un même texte : 2 langues).
J'ai alors hoisi de travailler avec des onglets et d'afficher d'un coté le texte en anglais et de l'autre le texte en français.
Seulement voilà, le problème est que du texte en anglais apparait dans l'onglet français.ne vois pas où est mon erreur.
Pouvez-vous m'adier ?
voici mon code :
<form enctype="multipart/form-data" name="form" id="form" action="#" method="post">
<ul class="tabs">
<li><a id="modif-lang1" href="#lang1">Français</a></li>
<li><a id="modif-lang2" href="#lang2">Anglais</a></li>
</ul>
<?
$traitement = $xpTraitement->query('//traitement[@id="'.$_GET['traitement'].'"]');
$idTraitement = $traitement->item(0)->getAttribute('id');
$nameTraitement = $traitement->item(0)->getAttribute('name');
$labelTraitement = $traitement->item(0)->getAttribute('label');
$paragrapheFr = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="fr"]/paragraphe');
$paragrapheEn = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="en"]/paragraphe');
for ($j=0; $j<$paragrapheFr->length; $j++) {
$idParagraphe = $paragrapheFr->item($j)->getAttribute('id');
$titreTraitementFr = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="fr"]/paragraphe[@id="'.$idParagraphe.'"]/title')->item(0)->nodeValue;
$descriptionTraitementFr = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="fr"]/paragraphe[@id="'.$idParagraphe.'"]/description')->item(0)->nodeValue;
$file = $xpTraitement->query('traitement[@id="'.$idTraitement.'"]/lang[@id="fr"]/paragraphe[@id="'.$idParagraphe.'"]/file[@id]');
if ($file->length > 0 ) {
$srcFile = $file->item(0)->getAttribute('img');
}
else $srcFile = '';
?>
<fieldset id="lang1">
<legend>Français</legend>
<label>Titre : </label><input type="text" name="titre_fr" id="titre_fr" value="<? echo $titreTraitementFr; ?>" /><br /><br />
<label>Description : </label><br /><textarea name="paragraphe_fr" id="paragraphe_fr" rows="7" cols="100"><? echo $descriptionTraitementFr; ?></textarea>
</fieldset>
<? }
for ($j=0; $j<$paragrapheEn->length; $j++) {
$idParagraphe = $paragrapheEn->item($j)->getAttribute('id');
$titreTraitementEn = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="en"]/paragraphe[@id="'.$idParagraphe.'"]/title')->item(0)->nodeValue;
$descriptionTraitementEn = $xpTraitement->query('//traitement[@id="'.$idTraitement.'"]/lang[@id="en"]/paragraphe[@id="'.$idParagraphe.'"]/description')->item(0)->nodeValue;
$file = $xpTraitement->query('traitement[@id="'.$idTraitement.'"]/lang[@id="en"]/paragraphe[@id="'.$idParagraphe.'"]/file[@id]');
if ($file->length > 0 ) {
$srcFile = $file->item(0)->getAttribute('img');
}
else $srcFile = '';
?>
<fieldset id="lang2">
<legend>Anglais</legend>
<label>Titre : </label><input type="text" name="titre_en" id="titre_en" value="<? echo $titreTraitementEn; ?>" /><br /><br />
<label>Description : </label><textarea name="paragraphe_en" id="paragraphe_en" rows="7" cols="100"><? echo $descriptionTraitementEn; ?></textarea>
</fieldset>
<? } ?>
<div class="btns">
<button type="button" onclick="history.back();" class="submit">Retour</button>
<button type="submit" class="submit">Enregistrer</button>
</div>
</form>
La solution serait peut être de vérifier l'existence des liens #lang1 et #lang2 ...
EDIT :
En fait, mes champs fieldset étaient mal placés dans la boucle et du coup, mon code javascript ne faisait pas ce que je voulais.