2013-02-26 26 views
1

回复多个表情我在留言中添加笑脸的答复提出意见在留言

它工作正常,当我想用​​这个代码在1条评论回复:

if (isset($_GET['action']) && $_GET["action"] == "reply") { 
    $commentrpl = substr(stripEmails(strip_tags($_POST["txtreply"])), 0, 250); 

    $rpl_arr = array(
     "O:-)" => "<img src=\"".DOC_ROOT."images/sml/aa.gif\"\/>", 
     ":-)" => "<img src=\"".DOC_ROOT."images/sml/ab.gif\"\/>", 
     ":-(" => "<img src=\"".DOC_ROOT."images/sml/ac.gif\"\/>", 
    ); 

    $commentrpl = strtr($commentrpl, $rpl_arr); 
    $osDB->query('UPDATE ! SET reply = ? WHERE id = ?', array( 
     COMMENTS_TABLE, 
     $commentrpl, 
     $_REQUEST["commentid"] 
    )); 
} 

但只要还有更多意见需要回复,表情符号将不再工作。 (不可点击)我需要更改什么,以便每次回复我都可以使用表情符号。

这是可能成为问题的JavaScript片断。

function smile4(txt) { 
    doInsert(" " + txt + " ", "", false, document.getElementById('txtreply')); 
} 

形式:

<form name="reply" method="post" action="showprofile.php?id={$profileid}&amp;commentid={$item.id}&amp;action=reply"> 
    <textarea id="txtreply" name="txtreply" cols="50" rows="5"></textarea> 
    <img src="images/sml/aa.gif" onclick="smile4('O:-)');" alt="O:-)"> 
    <input type="submit" name="btnAdd" value="{lang mkey='send'}" /> 
</form> 
+1

你是什么意思的“更多意见”?我无法在任何地方看到你的代码。顺便说一句,该JS片段没有任何上下文是没用的。 – Bergi 2013-02-26 21:17:33

+0

这意味着作为一个留言。用户可以添加评论,接收用户可以回复该评论。只要没有答复,将会有一个textarea和提交按钮(这工作正常)。如果回答的不仅仅是文字。因此,如果用户收到多条评论,则会有多个textareas用于回复。每个textarea都附带一组表情符号。表情符号仅在有1条评论和1条未答复的答复时才有效。一旦有多个未答复的答复,只有文本输入正在工作。 – 2013-02-26 23:50:59

+0

你不能有多个具有相同ID的元素(在你的案例中为“txtreply”) – 2013-03-10 16:59:42

回答

0

相反的strstr的使用str_replace函数像这样的东西:

$smiles = array(
    ':-)' => '<img ...>', 
    ... 
); 

$comment = str_replace(array_keys($smiles), array_values($smiles), $comment); 

除了这一点,会更好,如果你做的,当你显示注释更换/回复,而不是在将它保存到数据库时。