2009-07-01 7 views
3

Disons que j'ai ce javascript:Cliquez sur le lien, ajouter du texte à textarea?

<script language="javascript" type="text/javascript"> 
function addtext() { 
    var newtext = document.myform.inputtext.value; 
    document.myform.description.value += newtext; 
} 
</script> 

et je veux l'activer pour que je puisse cliquer sur un lien html qui dit: « ajouter du texte » et je veux que le texte soit @. $ nom d'utilisateur. (en utilisant PHP pour insérer le nom d'utilisateur). Ainsi, lorsque vous cliquez sur le lien "ajouter du texte", il est placé dans le nom de fichier textarea @. C'est difficile à visualiser et je ne sais pas trop où mettre le texte et PHP exactement. Merci!

Textarea:

<form Name ="myform" action="<?$posted = $_POST['description']; 
    $object->post_tweet($posted); ?>" method="post"> 
    <table align="left" border="0" cellspacing="1" cellpadding="5"> 
     <tr> 

     <td class="2"> 
    <textarea name='description' class="color" COLS=84 ROWS=2 type="text" id="eBann" name="bannerURL" maxlength="100" size="60" onKeyUp="toCount('eBann','sBann','{CHAR} characters left',140);"></textarea> 
    <br> 
     <span id="sBann" class="minitext">140 characters left.</span> 
    </td> 
    </tr> 
</table><BR><BR><BR> 
<p><input type='submit' value='Tweet!' /><input type='hidden' value='1' name='submitted' /> </p> 
</form> 

Voici ce que je veux faire avec le lien:

<a href="#" onclick="addtext("@'. $twit->user->screen_name .'"); return false>reply</a>' 

Cela me donne une erreur si (j'ai ajouté la fonction ADDTEXT aussi).

EDIT: J'ai compris! J'ai eu des erreurs avec "et" haha ​​wow, erreur stupide. Merci tout le monde!

Répondre

7

Ooh, difficile. Ceci est un fantastique méli-mélo de HTML, JavaScript et PHP, est-ce pas?

<script language="javascript" type="text/javascript"> 
function addtext(text) { 
    document.myform.description.value += text; 
} 
</script> 

... 

<a href="#" onclick="addtext('@<?php echo htmlspecialchars(addslashes($userName)) ?>'); return false" 
    >reply</a> 

Brisons que vers le bas. $userName faire semblant est "TeaCast" ensuite le code HTML qui s'envoyé au navigateur après la partie <?php ?> a exécuté ressemblerait à ceci:

<a href="#" onclick="addtext('@TeaCast'); return false" 
    >reply</a> 

Ah

!

Notes complémentaires:

  • Les href="#" établit un lien faux qui vous donne le curseur de la main, mais ne fait rien.
  • Le addslashes() dans le code PHP met une barre oblique inverse avant les guillemets.
  • L'appel htmlspecialchars() garantit qu'un nom d'utilisateur contenant des caractères étranges tels que '<' ou '&' ne gâchera pas votre page. Dites un mauvais utilisateur qui s'est lui-même nommé "<script>alert('haha')</script>" (oui, son nom d'utilisateur est un extrait de code HTML).
+0

Ahh J'ai eu la plupart de ce que vous avez raison, je devais juste savoir où mettre le haha ​​PHP merci John! –

+0

Oh bien en fait John, je voulais que le nom du lien dise "reply" au lieu de @username mais que @username apparaisse dans la zone de texte. –

0

La réponse de John fonctionne très bien, mais une autre alternative que vous pouvez faire est de stocker le nom d'utilisateur dans le javascript, tels que:

<script language="javascript" type="text/javascript"> 
var username = '<?php echo htmlspecialchars(addslashes($userName)) ?>'; 

function addtusername() { 
    document.myform.description.value += "@" + username; 
} 
</script> 

... 

<a href="#" onclick="addusername(); return false">reply</a> 

De cette façon, vous pouvez utiliser le nom d'utilisateur variable dans le Javascript pour d'autres fonctions plus tard, au lieu d'utiliser un tas de php.

+0

J'essayais d'utiliser le vôtre, mais il ne l'affichera toujours pas sur le