1

ステータスの更新をフェッチしてエコーする while ループがあります。while ループ中に「REPOST」リンクをエコーし​​て、ステータス更新 (その下にある) に追加し、クリックすると ID が外部の .php ファイルに渡されるようにしようとしています。このリンクは jquery+ajax です。

<script type="text/javascript">
$(document).on('click', 'a[id^=repost]', function(){
    var thePostID = $(this).prop('id').split('-')[1];
    //this now has the id of the $row['id'] we declared earlier.
    $.ajax({
        url: 'reposthandler.php',
        type: 'POST',
        data: {'id' : thePostID},
        success: function(data){  
        }
     });
});
</script>


<?php

include ('time.php');


$query = "SELECT poster, posterpic, category, type, date, id, follow.beingfollowed 
FROM usergen LEFT JOIN follow ON follow.beingfollowed = usergen.poster WHERE   
follow.iwannafollow 
= '*".$loggedin."' ORDER BY usergen.date DESC ";
$result = mysql_query($query) or die(mysql_error()) ;


$rows = array();
while($row = mysql_fetch_array($result)) {
    $row['ago'] = ago($row['date']);
    $rows[] = $row;


    echo '<br />';
    echo '<img src="' . $row['posterpic'] . '" width="40px" height="50px">';
    echo '<font color="red" size=2px><i>';
    echo '<a>'.$row['poster'].'</a></i></font>';
    echo '<br />';
    echo $row['category'] . ' for ' . $row['type'] . ' (' . $row['ago'] . ')';
    echo '<a href="#" id="repost-',$row['id'],'">REPOST</a>';
    echo '<br /><br /><HR size="4" width="auto" color="white">';
}
echo '</div>';
?>

リンクは死んでいて、何にもリンクしていません。どうしてこれなの?「success: function(data)」の下に何か追加する必要がありますか?

4

1 に答える 1

1
Simply add an element to the loop for the button. 

echo '<a href="#" id="repost-',$row['id'],'"> Repost This </a>';

クリック関数を静的親要素にバインドします。

$(document).on('click', 'a[id^=repost]', function(){
    var thePostID = $(this).prop('id').split('-')[1];
    //this now has the id of the $row['id'] we declared earlier.
    $.ajax({
        url: 'path/to/my/controller.ext?postID='+thePostID,
        type: 'POST',
        success: function(){
          //do whatever with the response.
        }
    });
});

これで、再投稿する投稿の ID が渡され、バックエンドの php ファイルで必要に応じて処理できます。

于 2012-09-04T20:31:45.600 に答える