这是我的表
http://postimg.org/image/vb9du3ikl/
我想做的是当我单击"单击此处"时,我将获得贷款ID值,例如,当我单击第一行的"单击此处"时,我将获得201410000帐户-00002。我一直在搜索网络,但代码仍然不起作用:(我已经试图解决这个问题一个星期了:(请帮助代码大师
这是我的 php 来生成表
$myquery="select loan.loanid,loanamount,interest,totalamount,duedate,paymenttype,remarks from loan,member,account where loan.accountid=account.accountid and account.memberid=member.memberid and account.memberid='".$mid."'";
$results=mysql_query($myquery);
echo "<table id='tableID' border='1' align='center'>";
echo "<tr style='background-color:#F60;color:white' align='center'><td>Loan ID</td><td>Loan Amount</td><td>Interest</td><td>Total Loan</td><td>Due Date</td><td>Payment type</td><td>Status</td><td>Loan Info</td></tr>";
while($rs=mysql_fetch_array($results))
{
if($rs['remarks']=='done')
{
echo"<td align='center' > ".$rs['loanid']."</td>";
echo"<td align='center'>".number_format($rs['loanamount'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['interest'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['totalamount'], 2, '.', ',')."</td>";
echo"<td align='center' > ".$rs['duedate']."</td>";
echo"<td align='center' > ".$rs['paymenttype']."</td>";
echo"<td align='center' >Fully Paid</td>";
print"<td style='color:red' align='center' onClick='loadXMLDoc()' > <a>CLICK HERE</a></td>";
$loanID=$rs['loanid'];
echo "<tr>";
}else{
echo"<td align='center' > ".$rs['loanid']."</td>";
echo"<td align='center'>".number_format($rs['loanamount'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['interest'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['totalamount'], 2, '.', ',')."</td>";
echo"<td align='center' > ".$rs['duedate']."</td>";
echo"<td align='center' > ".$rs['paymenttype']."</td>";
echo"<td style='color:red'align='center' >On Going</td>";
print"<td style='color:red' align='center'><a href='index.php'>CLICK HERE</a></td>";
$loanID=$rs['loanid'];
echo "<tr>";
}
}
echo "</table>";
?>
我之前尝试过这个 JQ,但它不起作用:(
<script type="text/javascript">
$('tr').each(function() {
$(this).click(function() {
var selectedTd = $(this).children('td:first-child').text();
alert(selectedTd);
});
});
</script>
正如我所看到的,您在脚本之前没有引用 jquery 库,您需要像这样tr
元素上绑定事件,但在文档就绪块中:
$(function(){
$('tr').click(function() {
var selectedTd = $(this).find('td:first-child').text();
alert(selectedTd);
});
});
如果要通过 ajax 添加trs
,则需要用户事件委派:
$('closestStaticParent').on('click', 'tr', function() {
var selectedTd = $(this).find('td:first-child').text();
alert(selectedTd);
});
这里 closestStaticParent 是 dom 节点,当 DOM 在 ajax 调用之前加载时可用(如果有的话)。
因此,您需要首先包含库:
<script src="http://code.jquery.com/jquery-2.1.1.js"></script>
<script>
$(function(){
$('tr').click(function() {
var selectedTd = $(this).find('td:first-child').text();
alert(selectedTd);
});
});
</script>
首先,你的javascript操作侦听器不正确。你应该使用这样的东西:
$(document).on('click','tr', function(){
var selectedTd = $(this).children('td:first-child').text();
alert(selectedTd);
});
确保侦听器位于script
标记之间,并且包含 jQuery 库。
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(document).on('click','tr', function(){
var selectedTd = $(this).children('td:first-child').text();
alert(selectedTd);
});
</script>
你的第二个问题是你的HTML不正确。您需要将td
元素放在tr
标签中。尝试下面的 PHP 代码,而不是您当前的"表创建者"代码。
if($rs['remarks']=='done')
{
echo"<tr>";
echo"<td align='center' > ".$rs['loanid']."</td>";
echo"<td align='center'>".number_format($rs['loanamount'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['interest'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['totalamount'], 2, '.', ',')."</td>";
echo"<td align='center' > ".$rs['duedate']."</td>";
echo"<td align='center' > ".$rs['paymenttype']."</td>";
echo"<td align='center' >Fully Paid</td>";
print"<td style='color:red' align='center' onClick='loadXMLDoc()' > <a>CLICK HERE</a></td>";
$loanID=$rs['loanid'];
echo "</tr>";
}else{
echo "<tr>";
echo"<td align='center' > ".$rs['loanid']."</td>";
echo"<td align='center'>".number_format($rs['loanamount'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['interest'], 2, '.', ',')."</td>";
echo"<td align='center'>".number_format($rs['totalamount'], 2, '.', ',')."</td>";
echo"<td align='center' > ".$rs['duedate']."</td>";
echo"<td align='center' > ".$rs['paymenttype']."</td>";
echo"<td style='color:red'align='center' >On Going</td>";
print"<td style='color:red' align='center'><a href='index.php'>CLICK HERE</a></td>";
$loanID=$rs['loanid'];
echo "</tr>";
}
如果你点击'tr',你的jquery语句就可以了,但是如果你点击锚点,页面将被重新加载如果仍要单击锚点,则代码应如下所示:
$('tr a').click(function(e) {
e.prenventDefault();
var selectedTd = $(this).parent().find('td:first-child').text();
alert(selectedTd);
});
首先加载 jQuery 库:
(在这里使用谷歌CDN)
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
然后添加此脚本以执行onclick
功能:
<script type="text/javascript">
$(document).ready(function(){
$('td').click(function() {
var selectedTd = $(this).parent().find("td:first-child").text();
alert(selectedTd);
});
});
</script>
您需要在 $(document).ready()
中添加您的事件 lintener 。您不需要.each()
循环。 .click()
将适用于所有td
元素。
为什么不简单地将 loadXMLDoc() 函数称为
<script type="text/javascript">
function loadXMLDoc(loanid){
alert(loanid);
}
</script>
因此,您的"td"将是
echo "<td style='color:red' align='center' onClick='loadXMLDoc(".$rs['loanid'].")' > <a>CLICK HERE</a></td>";