Php 删除所有行,但显示已单击的按id指定的行

Php 删除所有行,但显示已单击的按id指定的行,php,jquery,html,Php,Jquery,Html,我试图显示结果时,用户点击了一行,然后我会采取这个id和获取相关数据,并显示在下面 Student Id Total Marks Position View 41 525 1 Marks Sheet 42 504 2 Marks Sheet 43 504 2 Marks Sheet 44

我试图显示结果时,用户点击了一行,然后我会采取这个id和获取相关数据,并显示在下面

Student Id  Total Marks     Position    View
41           525               1       Marks Sheet
42           504               2       Marks Sheet
43           504               2       Marks Sheet
44           504               2       Marks Sheet
45           504               2       Marks Sheet
假设用户单击了第41行,则结果将显示在第41行下方,之后当用户单击42时,结果将显示在第42行下方,而位于第41行下方的上一个结果将被隐藏/删除

我已经尝试了好几次,但我无法显示,我的代码只显示第一次。如

Student Id  Total Marks     Position    View
41           525               1       Marks Sheet
Your marks sheet of student id:41
42           504               2       Marks Sheet
43           504               2       Marks Sheet
44           504               2       Marks Sheet
45           504               2       Marks Sheet
当用户单击第44行时

Student Id  Total Marks     Position    View
41           525               1       Marks Sheet
42           504               2       Marks Sheet
43           504               2       Marks Sheet
44           504               2       Marks Sheet
Your marks sheet of student id:44
45           504               2       Marks Sheet
我的JS代码:

 $(function(){
    $('.student').click(function(){
  var sid = this.id;
  $('.marks').not('#'+sid).remove();
  $('.marks').html("Your marks sheet of student id:"+sid);//Next,I will add user clicked studnt marks sheet from database.
    });
   });
php和html代码:

echo '<tbody>';
    foreach($results as $user){
        echo '<tr><td>'. $user->stdId.'</td><td>'.$user->total_Marks.'</td><td>'.$user->position.'</td><td  class="student" id='.$user->stdId.'>Marks Sheet</td></tr>';
    echo '<tr class="marks" id='.$user->stdId.'></tr>';
   }
echo '<tr><tr></tbody>';
echo';
foreach($results as$user){
回显'.$user->stdId'.$user->total_Marks'.'.$user->position.'Marks Sheet';
回声';
}
回声';
这里是新代码。使用“this”关键字获取数据(id)


您将通过
class=“student”
获得
div的id(返回class=“student”的所有div),但它应该是已单击的当前元素的id。

另外,您正在为student和mark元素使用相同的id,因此需要更改mark元素id,比如marks_{studentId}(见下文)

”;
并使用下面的代码

 $(function(){
      $('.student').click(function(){
         var sid = this.id;
                   ^------^// changed this
         $('.marks').html('');// remove all mark messages
         $('#marks_'+sid ).html("<td colspan='4'>Yes that is ok."+sid+"</td>");
       });
  });
$(函数(){
$('.student')。单击(函数(){
var sid=this.id;
^------^//改变了这个
$('.marks').html('');//删除所有标记消息
$('#marks'+sid).html(“是的,没问题。”+sid+);
});
});
如果您不想更改标记元素id,则使用下面的代码,但此处标记行必须位于学生行的下一行

$(function(){
      $('.student').click(function(){
          var sid = $(this).attr('id');

         $('.marks').html('')// remove all mark messages

         $(this).parent().next().html("<td colspan='4'>Yes that is ok."+sid+"</td>");

       });
  });
$(函数(){
$('.student')。单击(函数(){
var sid=$(this.attr('id');
$('.marks').html('')//删除所有标记消息
$(this.parent().next().html(“是的,没问题。”+sid+);
});
});

这里是工作

+1甚至可以是:
var sid=this.id可以是:
$('.marks')。而不是(this.remove()
但这意味着单击的元素具有两个类
student
&
标记
,因为ID在文档上下文中必须是唯一的。编辑:确实OP的HTML标记无效,使用重复的IDSY将显示代码并仅显示其中一行。我需要用户单击的每一行,消息将从前几行隐藏,消息将显示在当前行的下方。可能有多行。pl提供JSFIDLE链接这是无效的HTML标记,ID在文档上下文中必须是唯一的。如果显示代码,则只显示其中一行。我需要用户单击的每一行,消息将从前几行隐藏,消息将显示在当前行的下方。可能有多行。它在$(this).parent().next().html(“是的,没问题。”+sid+”)中显示错误;出于这个原因,我把它写成:$(this.parent().next().html(“是的,没问题。”+sid+);但它不起作用。@Bhushan Kawadkar,是否可以用tr而不是td添加此消息。因为,我将添加几个tr和td,而不是像这样的消息:主题代码主题瓷砖Makrs E1 English 88 H1 History 56它将来自jquery post。然后,这些将添加到我的标记行,而不是消息。
 $(function(){
      $('.student').click(function(){
         var sid = this.id;
                   ^------^// changed this
         $('.marks').html('');// remove all mark messages
         $('#marks_'+sid ).html("<td colspan='4'>Yes that is ok."+sid+"</td>");
       });
  });
$(function(){
      $('.student').click(function(){
          var sid = $(this).attr('id');

         $('.marks').html('')// remove all mark messages

         $(this).parent().next().html("<td colspan='4'>Yes that is ok."+sid+"</td>");

       });
  });