2009-07-01 20 views
3

のは、私はこのJavaScriptを持っているとしましょう:リンクをクリックし、テキストをテキストエリアに追加しますか?

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

と私はので、私は「テキストを追加」と言う一部のHTMLリンクをクリックすることができ、それを有効にしたいと私はテキストになりたいです@。 $ username。 (PHPを使用してユーザー名を挿入します)。したがって、 "テキストを追加"リンクをクリックすると、テキストエリア@ユーザー名に挿入されます。視覚化が難しく、テキストとPHPを正確にどこに置くべきかわからない。ありがとう!

テキストエリア:

<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> 

これは私がリンクして何をしたいかである:(私もaddtext機能を追加しました)にもかかわらず

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

これは私にエラーを与えます。

EDIT:手に入れました!私は、これは、HTML、JavaScript、およびPHPの幻想ミッシュ・マッシュです。おかげで、みんな!

答えて

7

ああ、タフな1 'との間違いや「すごい(笑)、愚かな間違いがあったが、それはないですか?

<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> 

はそれを打破するのをしてみましょう:$userName"TeaCast"あるふりを次に<?php ?>部分の後にブラウザに送信されますHTMLが実行されたようになります。

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

ああ

その他の注意事項:

  • href="#"セットアップあなたの手のカーソルを与えますが、何もしない偽のリンクを。
  • PHPコード内addslashes()は任意の引用符の前にバックスラッシュを置きます。
  • htmlspecialchars()コールは'<''&'台無しにあなたのページをしませんように奇妙な文字が含まれているユーザー名を保証します。自身"<script>alert('haha')</script>"という名前のいくつかの邪悪なユーザーを(はい、自分のユーザー名はHTMLの抜粋です)と言います。
+0

私はちょうどどこ笑PHPを置くために知る必要が、あなたは正しい、それのほとんどを持っていたああありがとうジョン! –

+0

まあ実際にジョンは、私が代わりに@usernameの「返信」と言って、リンクの名前を望んでいたが、@usernameは、テキストボックスに表示されています。 –

0

ジョンの答えは正常に動作しますが、あなたが行うことができます別の代替のような、JavaScriptでユーザ名を格納している:

<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> 

この方法は、あなたが他の機能のためにJavaScriptで変数名を使用することができます後で、PHPの束を使用する代わりに。

+0

私はあなたのものを使用しようとしていましたが、まだ