我正在尝试开发一个编辑功能,您可以通过点击一个简单的链接来编辑不同的注释"编辑"。当你点击它时,链接旁边的注释应该从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>";
}
答案 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>";
}
?>