クリックするといくつかのデータを更新するAjax関数があります。変数を関数パラメーターとしてpostに送信します。一方、変数の配列を解析し、それぞれに関数を適用します。これが私のコードです:
function vote(user, picture){
var data = {
"user": user,
"picture": picture
};
var url = 'vote_up.php';
$.ajax({
type: 'POST',
url: url,
data: data,
async: true,
dataType: 'json',
success: function(response) {
$('a#voteaza').replaceWith('<span style="color:#abb4c9; font-size: 15px;"> </span>');
$('#changeNumber').html(parseInt($('#changeNumber').html(), 10)+1);
}
});
}
そしてPHP:
foreach($photos['data'] as $photo) {
$a = end(explode( '/',$photo['source']));
<a href="#" id="voteaza" name = "<?php echo $a; ?>" style="color:#abb4c9; font-size: 15px; font-weight: bold; " onclick="vote('<?php echo $user ?>', '<?php echo $a ?>');">Voteaza</a> <br /> <span style="color:#abb4c9; font-size: 13px;" id="changeNumber"> <?php echo no_votes($a); ?> Voturi </span>
問題は、成功すると、jqueryが
$('a#voteaza').replaceWith('<span style="color:#abb4c9; font-size: 15px;"> Vote! </span>');
$('#changeNumber').html(parseInt($('#changeNumber').html(), 10)+1);
すべての「voteaza」IDを「Vote」文字列に置き換え、すべての「changenumber」idフィールドをインクリメントします。ただし、success関数は、現在Ajaxで更新されている<a name
要素に対してのみ実行する必要があります。
それを行う方法はありますか?
ありがとう!