编辑textareras列表

时间:2014-02-10 09:06:10

标签: php jquery

我正在尝试开发一个编辑功能,您可以通过点击一个简单的链接来编辑不同的注释"编辑"。当你点击它时,链接旁边的注释应该从div转换为可编辑的textarea。

代码:

$(".edit").click( function(){
    $('.edit_note').replaceWith(function() {
  return $("<textarea>").text(this.innerHTML);
});

});

问题在于,当我点击一个笔记上的编辑时,不是只是使该笔记可编辑,列表中的所有笔记都是可编辑的。如何才能确保只有我要编辑的注释是否可编辑?

这些注释从MySQL中的表中循环出来。

foreach($byanat_notering as $key => $value){
    echo "<tr><td width='160' valign='top'><font size='2'>";
    echo substr($value["created"],0,16);
    echo "<br />".$user[$value["users_id"]]["namn"];
    echo "<br/><a href='#' class='edit'>Redigera</a>";
    echo "</td><td width='550' valign='top'><font size='2'>";
    echo "<div class='edit_note'>" . $value["text"] . "</div>";
    echo "</td></tr>";
}

2 个答案:

答案 0 :(得分:1)

您需要使用唯一ID将其分开,我正在使用变量$i

$i = 0;
foreach($byanat_notering as $key => $value){
    echo "<tr><td width='160' valign='top'><font size='2'>";
    echo substr($value["created"],0,16);
    echo "<br />".$user[$value["users_id"]]["namn"];
    echo "<br/><a href='#' class='edit' id='edit_". $i ."'>Redigera</a>";
    echo "</td><td width='550' valign='top'><font size='2'>";
    echo "<div class='edit_note' id='edit_note_". $i ."'>" . $value["text"] . "</div>";
    echo "</td></tr>";
    $i++;
}
$i = 0;

在JavaScript中仅引用这些唯一ID:

$(".edit").click( function(){
    var id = parseInt($(this).attr('id').split('_')[1]); //returns the unique integer

    //edit only the div with that integer assigned
    $('#edit_note_'+id).replaceWith(function() {
        return $("<textarea>").text(this.innerHTML);
    });
});

我正在使用for循环的索引($ i)来匹配div的hrefs。

答案 1 :(得分:0)

尝试在每个循环中放入javascript

    <?php
    foreach($byanat_notering as $key => $value){

    ?>
    <script type="text/javascript">

    $(".edit-<?php echo $value["users_id"]; ?>").click( function(){
        $('.edit_note-<?php echo $value["users_id"]; ?>').replaceWith(function() {
      return $("<textarea>").text(this.innerHTML);
    });

    });

    </script>

    <?php

        echo "<tr><td width='160' valign='top'><font size='2'>";
        echo substr($value["created"],0,16);
        echo "<br />".$user[$value["users_id"]]["namn"];
        echo "<br/><a href='#' class='edit-".$value["users_id"]."'>Redigera</a>";
        echo "</td><td width='550' valign='top'><font size='2'>";
        echo "<div class='edit_note-".$value["users_id"]."'>" . $value["text"] . "</div>";
        echo "</td></tr>";
    }

    ?>