点击时如何在jQuery中获取PHP表值


How to get the PHP table values in jQuery when click

这是我的表

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>";