jqeury erkennt immer das gleiche id :((

latinum_1982

Erfahrenes Mitglied
folgendesn ich datanbank (SQL) wird ausgelesen
PHP:
				<ul class="line">
					<?php $data = $user->myphotos($_GET['albumid']);?>
					<?php if(is_array($data)) : ?>
					<?php foreach($data as $dat) : ?>
		    		<li class="show_photo_<?php echo htmlspecialchars($dat['photo_id']) ?>">
				    	<a href="fotos/<?php echo htmlspecialchars($dat['photo']) ?>" title="<?php echo htmlspecialchars($dat['beschreibung']) ?>"><img src="fotos/<?php echo htmlspecialchars($dat['photo']) ?>" alt="" width="178"/></a><br>
				    	<?php echo htmlspecialchars($dat['beschreibung']) ?> <p class="photodel"><b class="photo_del_id" id="<?php echo htmlspecialchars($dat['photo_id']) ?>">[Foto L&ouml;schen?]</b></p>
		    		</li>
					<?php endforeach; ?>
				<?php else: ?>
				
					<center><div class="warning">keine Fotos vorhanden!</div></center>
				
				<?php endif; ?>

und ich will mit jquery einzelne fotos löschen können
dazu hab ich mal das geschrieben

Javascript:
	$(".photodel").click(function () {
		jConfirm('Bist du Sicher?', 'Foto Entfernen', function(r) {
			if(r = true){
				var id = $('b.photo_del_id').attr('id');
				jAlert('PHOTO ID: ' + id, 'Confirmation Results');
			}
		});
	});

aber irgendwie bekomm ich als resultat immer die gleiche ID raus :(

wo hab ich denn ein fehler gemacht?
 
Zuletzt bearbeitet von einem Moderator:
jQuery's getter-Funktionen liefern den Wert des ersten Elementes innerhalb eines jQuery-Objektes.

$('b.photo_del_id') liefert dir alle <b>-Elemente mit der entsprechenden Klasse, du hast den Bezug zu dem geklickten Element verloren.

Diesen Bezug kannst du aber leicht wieder herstellen:

Code:
    $(".photodel").click(function () {
        var _this=this;
        jConfirm('Bist du Sicher?', 'Foto Entfernen', function(r) {
            if(r = true){
                var id = $('b.photo_del_id',_this).attr('id');
                jAlert('PHOTO ID: ' + id, 'Confirmation Results');
            }
        });
    });
Wie du siehst, wird dort eine Variable erstellt:

var _this=this;

Diese Variable speichert das geklickte Element und kann jetzt in jConfirm als Kontext benutzt werden:

var id = $('b.photo_del_id',_this).attr('id');
 
Zurück