2009-07-01 1 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 для вставки имени пользователя). Поэтому, когда вы нажимаете ссылку «добавить текст», она будет помещаться в текстовое поле @username. Трудно представить, и я не уверен, где точно разместить текст и PHP. Благодаря!

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> 

Это то, что я хочу сделать со ссылкой:

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

Это дает мне ошибку, хотя (я добавил функцию AddText тоже).

EDIT: Получил это! Я имел ошибки с "и" ха-ха ничего себе, глупая ошибка. Спасибо всем!

ответ

7

OOH, жесткий один. Это фантастическая мешанина HTML, JavaScript и PHP, не так ли?

<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" Тогда HTML, которые будут передаваться в браузер после <?php ?> части исполнил бы выглядеть следующим образом:

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

Ах

!

Дополнительные примечания:

  • В href="#" устанавливает поддельную ссылку, которая дает Вам курсор в виде руки, но ничего не делает.
  • Код addslashes() в коде PHP помещает обратную косую черту перед любыми кавычками.
  • Вызов htmlspecialchars() гарантирует, что имя пользователя, которое содержит странные символы, такие как '<' или '&', не испортит вашу страницу. Скажем, какой-то злой пользователь, который назвал себя "<script>alert('haha')</script>" (да, их имя пользователя является фрагментом HTML).
+0

Ahh У меня было больше всего, что вы правы, мне просто нужно было знать, где поставить 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

Я пытался использовать ваш, но он все еще не отображает его на