[javascript]Recupération d'un td

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [javascript]Recupération d'un td

par Ryle » 07 juin 2007, 15:56

Ton élément document.getElementById("postMess") est une cellule, elle n'a donc pas d'attribut value, d'où le message d'erreur "undefined" que tu reçois. Si tu veux récupérer le contenu d'un conteneur, il te faut utiliser la propriété "innerHTML" ou éventuellement "textContent" :)
p = document.getElementById("postMess").innerHTML;
p = code_to_html(p); 
document.getElementById("postMess").innerHTML = p;

[javascript]Recupération d'un td

par Zolmitriptan » 07 juin 2007, 12:28

Bonjour à tous,

Voila, pour l'affichage d'un bbcode, j'enregistre mes message dans la base de donnée avec leurs balises.

Je veux donc, avant de les afficher, récupérer les valeurs d'origine pour les passer dans ma méthode javascript afin de les rendre lisibles.

Pour info, j'ai pris les méthodes sur ce tuto.

Je fais (ou du moins j'essaie) de faire de cette façon :
$form .= '</td>
<td name="postMess" id="postMess">'.$datas['post_message'].'</td></tr>';
Ou bien evidemment $datas['post_message'] est le message récupérer dans ma base de donnée.

Puis, sous ces lignes :

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> p=document.getElementById("postMess").value p = code_to_html(p); document.getElementById("postMess").innerHTML=p ; </script>
Après avoir fermé php bien sur.

Problème :

Code : Tout sélectionner

p=document.getElementById("postMess").value
M'affiche : undefined


Et si j'essai avec

Code : Tout sélectionner

p=document.getElementById("postMess")
J'ai droit a : [object HTMLTableCellElement]

Est-ce que quelqu'un peut m'aider ?? Ca va faire deux jours que je seche.....après avoir tester des tonnes de méthodes différentes, de façon d'écrire différentes et autres...... :cry:

Merci d'avance

Edit : Autre souci : imaginons que j'ai 5 messages à afficher. Je fais un test avec mon javascript pour lui dire de mettre 'test' dans mon td :

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> p='test' document.getElementById("postMess").innerHTML=p ; </script>
Cela fonctionne, il me met bien test dans mes td.....sauf dans la dernière, à chaque fois....quelque soit mon nombre de message, il ne me remplira jamais la dernière....une idée du pourquoi ??
Re merci d'avance
:lol:

Edit : Après d'autre recherche et d'autres heures de galère, j'ai enfin trouvé la solution :
$form .= '</td>
<td name="postMess" id="postMess"></td></tr>';
//On ne met rien dans la cellule ou le message doit s'afficher

$form .='<input type="hidden" id="recup" value="'.htmlspecialchars($datas['post_message']).'" />';
//On met le message à récupérer dans un input hidden

Pour que tous les messages s'affichent convenablement :
echo $form;

//Ici, après le echo(!!!) le petit script ci-dessous

Script pour récupérer le message et l'afficher dans notre td :

Code : Tout sélectionner

p=document.getElementById("recup").value //On récupère la valeur de "recup", donc de notre input p = code_to_html(p); //On applique la fonction au message document.getElementById("postMess").innerHTML=p ; //On met le résultat dans postMess, donc notre td