假设我有这个javascript:
<script language="javascript" type="text/javascript">
function addtext() {
var newtext = document.myform.inputtext.value;
document.myform.description.value += newtext;
}
</script>
我希望启用它,以便点击一些说“添加文字”的html链接,我希望文字为@。 $ username。 (使用PHP插入用户名)。因此,当您单击“添加文本”链接时,它将放入textarea @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函数)。
编辑:知道了!我有'和'哈哈哇,愚蠢的错误的错误。谢谢大家!答案 0 :(得分:7)
<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="#"
设置一个虚假链接,为您提供手形光标但不执行任何操作。 addslashes()
会在任何引号前加上反斜杠。htmlspecialchars()
调用可确保包含'<'
或'&'
等奇怪字符的用户名不会弄乱您的页面。说一些自称为"<script>alert('haha')</script>"
的邪恶用户(是的,他们的用户名是HTML的片段)。答案 1 :(得分:0)
John的回答很好,但您可以做的另一个选择是将用户名存储在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。