Bonjour,
J'ai un petit souci avec du javascript :
j'ai une collection de liens qui peuvent être mis à jour en cliquant sur un lien "e". lorsque l'on clique dessus, on ne recharge pas la page, mais un formulaire avec deux cases texte apparaissent et l'utilisateur peut mettre à jour la description du lien et l'url.
Voici le code :
et voici le javascript :
NB : la fonction guardaEnterADR met à jour la page html (remplace les 2 cases texte par ce qu'on a tapé dedans).
ça marche bien sauf que si je fais 2 fois de suite, ça me récupère la valeur initiale !
Ex :
au départ j'ai :
url = http://www.gooogle.fr
description : un moteur de recherche
je mets à jour avec :
url = http://www.google.fr
description : un moteur de recherche
sur la page, la modif est bonne, mais si je reclique sur E pour éditer alors dans mes 2 cases texte, j'obtiens les valeurs de départ :
url = http://www.gooogle.fr
description : un moteur de recherche
Ce qui est étrange, c'est que ça fonctionne avec IE !
Grrrrr ...
est-ce qu'il n'y aurait pas une fonction javascript pour synchroniser ? En fait la fonction :
document.getElementById();
me renvoie ce qu'il y a au départ dans l'élément et pas ce par quoi je l'ai remplacé ! (ma phrase est compliquée
)
Est-ce que qqn pourrait m'aider ?
Merci et bonne année !
Modifié par sophie67 (31 Dec 2005 - 15:28)
J'ai un petit souci avec du javascript :
j'ai une collection de liens qui peuvent être mis à jour en cliquant sur un lien "e". lorsque l'on clique dessus, on ne recharge pas la page, mais un formulaire avec deux cases texte apparaissent et l'utilisateur peut mettre à jour la description du lien et l'url.
Voici le code :
....
<span id='adr$i'>
<a href=".$row["url"]." id='lien$i'>".$row["description"]."</a>
</span>
- [<a href='#' onclick='editeadr(".$row["id"].", lien$i);'>e</a>]
...
et voici le javascript :
function editeadr(id, actual) {
elem = document.getElementById("adr"+id);
elem.innerHTML = "<input id='liensA'"+id+" maxlength=\"30\"type=\"text\" value=\"" + actual.innerHTML + "\" size=\"30\" onkeypress=\"return guardaEnterADR(this,event," + id + ")\" onblur=\"return guardaBlurADR(this,event," + id + ")\" /> <br /><input id='liensB'"+id+ "maxlength=\"30\"type=\"text\" value=\"" + actual + "\" size=\"30\" onkeypress=\"return guardaEnterADR(this,event," + id + ")\" onblur=\"return guardaBlurADR(this,event," + id + ")\" />";
elem.firstChild.focus();
}
NB : la fonction guardaEnterADR met à jour la page html (remplace les 2 cases texte par ce qu'on a tapé dedans).
ça marche bien sauf que si je fais 2 fois de suite, ça me récupère la valeur initiale !
Ex :
au départ j'ai :
url = http://www.gooogle.fr
description : un moteur de recherche
je mets à jour avec :
url = http://www.google.fr
description : un moteur de recherche
sur la page, la modif est bonne, mais si je reclique sur E pour éditer alors dans mes 2 cases texte, j'obtiens les valeurs de départ :
url = http://www.gooogle.fr
description : un moteur de recherche
Ce qui est étrange, c'est que ça fonctionne avec IE !
Grrrrr ...
est-ce qu'il n'y aurait pas une fonction javascript pour synchroniser ? En fait la fonction :
document.getElementById();
me renvoie ce qu'il y a au départ dans l'élément et pas ce par quoi je l'ai remplacé ! (ma phrase est compliquée

Est-ce que qqn pourrait m'aider ?
Merci et bonne année !
Modifié par sophie67 (31 Dec 2005 - 15:28)