Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 编辑文本列表_Php_Jquery - Fatal编程技术网

Php 编辑文本列表

Php 编辑文本列表,php,jquery,Php,Jquery,我试图开发一个编辑功能,你可以通过点击一个简单的链接“编辑”来编辑不同的注释。当你点击这个按钮时,链接旁边的注释应该从一个div转换成一个可编辑的文本区域 守则: $(".edit").click( function(){ $('.edit_note').replaceWith(function() { return $("<textarea>").text(this.innerHTML); }); }); $(“.edit”)。单击(函数(){ $('.edit_n

我试图开发一个编辑功能,你可以通过点击一个简单的链接“编辑”来编辑不同的注释。当你点击这个按钮时,链接旁边的注释应该从一个div转换成一个可编辑的文本区域

守则:

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

});
$(“.edit”)。单击(函数(){
$('.edit_note').replaceWith(函数(){
返回$(“”).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>";
}
foreach($byanat\u注释为$key=>$value){
回声“;
echo substr($value[“created”],0,16);
echo“
”$user[$value[“users_id”][“namn”]; 回声“
”; 回声“; 回显“$value[“text”]”; 回声“; }
尝试将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>";
    }

    ?>

$(“.edit-”)。单击(函数(){
$('.edit_note-')。替换为(function(){
返回$(“”).text(this.innerHTML);
});
});

您需要使用唯一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;
$i=0;
foreach($byanat_注释为$key=>$value){
回声“;
echo substr($value[“created”],0,16);
echo“
”$user[$value[“users_id”][“namn”]; 回声“
”; 回声“; 回显“$value[“text”]”; 回声“; $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);
    });
});
$(“.edit”)。单击(函数(){
var id=parseInt($(this).attr('id').split('')[1]);//返回唯一的整数
//仅编辑指定了该整数的div
$('#edit_note'+id).replaceWith(function(){
返回$(“”).text(this.innerHTML);
});
});

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

不。。。这是不必要的。只需为ahref设置一个唯一的id并将其与div匹配即可。如您所愿,我认为每个循环都应该使用唯一的id,所以…但funda是相同的,我使用了&您正在告诉……。您的答案也会起作用,但会在页面中添加额外的脚本标记。因此,对于1000个值,它将添加1000个脚本标记!我的回答也一样,但是使用了他目前实现的代码。嗨,谢谢你的回答。但当我点击我的编辑链接时,什么也没发生。这很奇怪。你能复制几行结果标记并创建一个JS提琴吗?我会努力的,现在开始了!我编写了var id=$(this).attr('id').split(''u')[0],而不是结尾的[1]。非常感谢你!什么?甚至是陌生人!因为下划线上的拆分应该返回一个包含2个值的数组:[“编辑”,0/1/2…]。因此索引必须位于数组中的第一个位置,而不是第0个位置。点击所有链接,尝试彻底检查。我的答案代码做了一些更改,请检查。