0

データベース回答テーブルからデータをロードするphpコードがあります

phpコード:

 <?php while ($rowanswer=mysql_fetch_assoc($answer)) :?>
       <div  class="text-soal2">

        <div class="vote-svj">
                <div class="vote-svj-vt3"><a class="voteupa" onclick="" ><img src="images/plus.png" alt="like" title="+"/></a></div>
                <div class="vote-svj-vt2"><?php echo $rowanswer['vote'] ;
                echo $aid=$rowanswer['id'];
                ?></div>
                <div class="vote-svj-vt"><a class="votedowna" ><img src="images/minus.png" alt="dislike" title="-"/></a></div>

           </div>


         <div class="text-javab">


               <p>

             <?php echo $rowanswer['answer'] ?>



               </p>  


      </div><div class="clr"></div>
      <h5>نوشته شده توسط <?php 

      $query1="select username from user where id=$rowanswer[user_id]";
      $senderanswer=mysql_query($query1);
$ssender=mysql_fetch_assoc($senderanswer);

      echo $ssender['username'];

       ?> در تاریخ <?php echo $rowanswer['date'] ?></h5>
   </div>
        <?php endwhile; ?> 

$ aid = $ rowanswer ['id']回答IDをajaxで別のページに送信しようとしていますが、最後の援助を別のページに送信するだけです。ボタンをクリックしたときにすべての行援助をajaxで送信するにはどうすればよいですか。

ajaxコード:

$('.votedowna').click(function(){
$.ajax({
         url : '<?php echo "php_func/answer_vote.php?aid=".$aid ?>',
         type : 'GET',

         data : { send : "dislike"},
        beforeSend : function()
        {
            alert(<?php echo $aid ?>);
            },
        success : function(callback){
            alert(callback);

        })


    });
4

3 に答える 3

2

あなたはこれを試すことができます:

<div class = "vote-svj-vt"> <a class = "votedowna" id = "<?php echo $ rowanswer ['id'];"> <img src = "images / minus.png" alt = "嫌い"title="-" /> </a> </ div>

そして、JSでは、votedownaアンカータグに追加したIDを取得し、URLとともに渡します。

$('。votedowna')。click(function(){
var aid = $(this).attr( "id");
$ .ajax({
         url:'php_func / answer_vote.php?aid ='+ aid、
         タイプ:'GET'、

         データ:{送信: "嫌い"}、
        beforeSend:function()
        {{
            alert();
            }、
        成功:関数(コールバック){
            alert(コールバック);

        })


    });
于 2013-03-01T07:26:36.023 に答える
1

ループ.votedownaの反復回数に応じて反復が繰り返されるため、イベントの処理方法の前にステートメントを用意する必要があります。while.eachclick

$('.votedowna').each(function() {
 $(this).click(function() {
  $.ajax( ...

これが問題になる可能性があります。ちなみに、whilePHP内にJavascriptコードを作成しましたか、.jsそれともファイルを持っていますか?JSファイルを使用する場合は、ajax URLを別の方法で渡す必要があるため、Javascriptは次のようになります。

$.ajax({
     url : 'php_func/answer_vote.php',
     type : 'GET',

     data : { 
       send : "dislike",
       aid: $(this).parent().parent().find('div.vote-svj-vt2').text(), // This is where you have the aid for this row, you better save it somewhere else though
     },
    beforeSend : function()
    {
        alert('<?php echo $aid ?>');
        },
    success : function(callback){
        alert(callback);

    })
于 2013-03-01T07:27:51.480 に答える
0

まず、ajaxメソッドを何度も呼び出そうとしている場合は、foreachまたはforループを使用して呼び出すことができます。

mysql_query次に、スクリプトは古すぎるため、使用しないでください。代わりにPDOを使用してください。

最後に、JavaScriptで何かを何度も選択する必要がある場合は、.clickを使用する代わりに.each()を使用できます。

また、このような標準のクエリ書き込み方法を使用します

 SELECT username FROM user WHERE id= '$rowanswer[user_id]'
于 2013-03-01T07:33:31.827 に答える