2017-03-11 4 views
0

Hallo Leute, ich versuche, eine Schaltfläche ID, die in einer for-Schleife ist, so dass immer wenn der Button klicken Sie auf die eindeutige ID, die von anderen IDs unterschieden werden können, arbeiten können. lass mich dir meinen Code zeigen.Wie bekomme ich die Button ID dynamisch?

<?php foreach ($message as $key) : ?> 
            <?php echo $senders_user_id=$key['senders_id']; ?> 
            <div class="senders_id" S_id="<?php echo $key['senders_id']; ?>" style="display: none;"></div> 
          <a class="list-group-item"> 
          <div class="checkbox"> 
          <label> 
          <?php echo form_open(,['id'=>'sender_user_id']); ?> 
           <input type="checkbox"> 
           <button id="senders_id" class="Read" S_id="<?php echo $key['senders_id'];?>" onclick="readbyuser($senders_user_id);">Read</button> 
           <button id="senders_id" class="unread" S_id="<?php echo $key['senders_id'];?>" onclick="unreadbyuser($senders_user_id);">Unread</button> 

          </label> 
          </div>   

         <span class="glyphicon glyphicon-star-empty"></span><span class="name" style="min-width: 120px; 
          display: inline-block;"><?php echo $key['uname']; ?></span> <span class=""><?php echo $key['textdata']; ?></span> 
         <span class="text-muted" style="font-size: 11px;"></span> <span class="badge">12:10 AM</span> <span class="pull-right"><span class="glyphicon glyphicon-paperclip"> 
         <?php echo form_close(); ?> 
          </span></span></a> 
             <?php endforeach; ?> 
        </div> 

Hier gibt es drei Posten bedeutet drei ‚senders_id‘ so, wenn ich auf die Schaltfläche klicken Sie auf die ID dieses lesen sollte passieren, aber die gleiche ID wieder vorbei und wieder egal welche Taste i auf

klicken

Hier ist mein Code

function readbyuser() 
{ 
    var senders_id=$('#senders_id').attr('S_id'); 
    var Recievers_id=$('.Recievers_id').attr('R_id'); 
jQuery.ajax({ 
      type:'post', 
      url:'<?php echo base_url("user/read_by_user"); ?>', 
      data:{id:senders_id,R_id:Recievers_id}, 
      dataType:'json', 
      success:function(data) 
      { 
       console.log(data); 

       alert(data); 

       $('.unread').removeClass('unread_user'); 
       $('.Read').addClass('read_user'); 


      } 


     }); 

} 
function unreadbyuser() 
{ 
var senders_id=$('#senders_id').attr('S_id'); 
    var Recievers_id=$('.Recievers_id').attr('R_id'); 
jQuery.ajax({ 
      type:'post', 
      url:'<?php echo base_url("user/unread_by_user"); ?>', 
      data:{id:senders_id,R_id:Recievers_id}, 
      dataType:'json', 

      success:function(data) 
      { 



    $('.Read').removeClass('read_user'); 
    $('.unread').addClass('unread_user'); 
    } 
}); 
} 

bitte sagen Sie mir, was ich tue, falsch

+4

Bitte reinigen Sie diese und uns mit einer direkten Frage liefern. Niemand wird dieses Durcheinander von Code für dich sortieren. –

+0

Bemühen Sie sich, ein minimales Beispiel zu geben. Die Menschen halten sich von Codewänden fern, die mit der Frage meist nichts zu tun haben. Ist hier der kommentierte Code notwendig? Wenn nicht, warum sollte es in der Frage sein? – apokryfos

+0

Stimmen Sie mit @BlakeConnally und apokryfos überein, leider lesen Leute noch nicht die Richtlinien des Stellens der Frage. Aber helfen wir ihm oder stimmen ihn ab, weil die Frage nicht richtig formatiert ist? –

Antwort

0
<button id="senders_id" class="Read" S_id="<?php echo $key['senders_id'];?>" onclick="readbyuser($senders_user_id);">Read</button> 


<button id="senders_id" class="unread" S_id="<?php echo $key['senders_id'];?>" onclick="unreadbyuser($senders_user_id);">Unread</button> 

Zwei Elemente können keine identische ID haben. Verwenden Sie stattdessen den Klassennamen.

Auch Sie können PHP-Werte direkt in diesem übergeben.

onclick="readbyuser($senders_user_id);"

als

onclick="readbyuser(<?php echo $key['senders_id'];?>);"

+0

aber das Ajax-Ergebnis, das ich will, wird auf allen Knöpfen angezeigt, selbst wenn ich den Knopf mit id = 3 klicke, würde der Knopf mit id = 9 seine Farbe @Akshay Praksh geändert bekommen –