2013-02-11 2 views
0

Хорошо, я делаю частную систему сообщений, и я установил php для эха div с тем же классом, но установил id = в идентификатор строки, пожалуйста, проверьте код ниже.Получить значение id двух разных div с тем же классом

function Load() 
{ 

$Connect = new mysqli("localhost", "root", "", "Data"); 
session_start(); 
$User = $_SESSION['Username']; 
$Stats = 'SELECT * FROM Messages WHERE User="'.$User.'"'; 

if($Result = $Connect->query($Stats)) 
{ 
    while($Row = $Result->fetch_assoc()) 
    { 
     $From = $Row['FUser']; 
     $Date = $Row['Date']; 
     $Title = $Row['Title']; 
     $ID = $Row['ID']; 

     echo '<div id="'.$ID.'" class="String"><label class="TText" style="cursor:pointer;">From: ' . $From . ' - ' . $Date . ' - ' . $Title .'</label></div>'; 
    } 
} 

}

Моего JQuery:

$('.String').click(function() 
{ 
    var Msg = $('#MMsg'); 
    var Back = $('#Back'); 
    var Str = $('.String'); 
    Str.fadeOut('fast', function() 
    { 
     Msg.fadeIn('fast'); 
     Back.fadeIn('fast'); 
     var ID = $('.String').attr('id'); 

     $.ajax 
     ({ 
      url:'MLoad.php', 
      type:'POST', 
      data:{ID:ID}, 
      dataType:'json', 
      success:function(MText) 
      { 
       $('#MMBox').html(MText.T); 
      } 
     }); 
    }); 
}); 

когда я предупрежу УАК ID я получаю тот же результат для обоего див, но в HTML идентификатор отличается для каждого. i.e окна предупреждений дают мне первый идентификатор каждый раз.

ответ

2

Используйте $ (this), чтобы получить идентификатор элемента fadeOut. В противном случае вы получите только идентификатор первого совпадающего div.

var ID = $ (this) .attr ('id');

+0

это сработало! Благодарю. –

+0

это не позволит мне принять сразу, я за 7 минут –

0

Когда вы находитесь в функции click, this ссылается на элемент, который был нажат. Таким образом, вы можете использовать $(this).attr('id') для получения идентификатора .String, который был нажат.

$('.String').click(function() 
{ 
    var id = $(this).attr('id'); 
    var Msg = $('#MMsg'); 
    var Back = $('#Back'); 
    var Str = $('.String'); 
    Str.fadeOut('fast', function() 
    { 
     Msg.fadeIn('fast'); 
     Back.fadeIn('fast'); 

     $.ajax 
     ({ 
      url:'MLoad.php', 
      type:'POST', 
      data:{ID:id}, 
      dataType:'json', 
      success:function(MText) 
      { 
       $('#MMBox').html(MText.T); 
      } 
     }); 
    }); 
}); 
Смежные вопросы