如何从PHP FOR&WHILE循环组合中获取Ajax GET命令的正确mysql id? 现在,当我执行测试警报时,每个href的onclick都会导致警报最后一个ID,而不是正确的ID。

   <?php 
    $varRank = 1;
    $pRow = 1;
    $pBlock = 1;
       FOR ($pRow == 1; $pRow < 5; $pRow++){    
            WHILE ($pBlock <= $pRow){

            mysql_select_db($database_cms_test, $cms_test);
            $query = "SELECT * WHERE rank=$varRank";
            $result = mysql_query($query) or die();
            $row = mysql_fetch_array($result);

            $scr = '<script type="text/javascript" src="jquery.min.js"></script>' .
            '   <script type="text/javascript">' .
            '       function runCounter(){' .
            '       var currentID = ' . $row['id'] . ';' .
            '       var currentRank = ' . $row['rank'] . ';' .  
            '       alert(\'the current id is \' + '. $row['id'] .');' .                
            '       $.get("counter5.php?id=' . $row['id'] . '");' .
            '       }' .
            '   </script>';

            echo $scr;

            $onclkHTML = '<a href="#" onclick="runCounter();" id="' .    $row['song_name'] . '">' .
            '<img src="images/glossy.jpg" width="30" height="30" align="absmiddle" hspace="10" /></a>';
            echo $onclkHTML;    

            $pBlock++;
            $varRank++;
            }
            $pBlock = 1;  // reset
        }
    ?>

===============>>#1 票数:1 已采纳

您每次都要在循环中重新定义相同的功能。

由于您使用的是jQuery,为什么不直接将点击处理程序与其绑定? 给每个链接一个类,并使用data-XXX标签将参数与之关联:

$onclkHTML = '<a href="#" class="counter" id="' . $row['song_name'] . ' data-rank=" . $row['rank'] . " data-id=" . $row['id'] . ">' .
        '<img src="images/glossy.jpg" width="30" height="30" align="absmiddle" hspace="10" /></a>';
echo $onclkHTML;    

然后只需将处理程序绑定到该类:

$(function () {
    $(".counter").click(function() {
        var currentId = $(this).data("id");
        var currentRank = $(this).data("rank");
        alert("The current id is " + currentId);
        $.get("counter5.php?id=" + currentId);
    });
});

  ask by om123 translate from so

未解决问题?本站智能推荐: