如何从PHP FOR&中获取正确的mysql id WHILE循环组合用于Ajax GET命令?现在当我做一个测试警报时,每个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
}
?>
答案 0 :(得分: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);
});
});