Php 使用jquery获取同一行中的表元素

Php 使用jquery获取同一行中的表元素,php,jquery,sql,html-table,Php,Jquery,Sql,Html Table,我真的很困惑我怎么能做到这一点。选择一个时,我需要获取两个的值。例如,下面让我们假设我选择id=每月550美元的td。我需要得到与该价格相对应的年龄和超额。我希望这是有道理的。因此,在选择$550的示例中,我需要jQuery获得年龄(18-24岁)和超额($1000)的值。然后,我将获取这两个值并插入mysql,如下所述。我是否可以用jQuery或PHP实现这一点?我乐于接受各种想法 <table> <tr> <td width="67">&l

我真的很困惑我怎么能做到这一点。选择一个时,我需要获取两个
的值。例如,下面让我们假设我选择id=每月550美元的td。我需要得到与该价格相对应的年龄和超额。我希望这是有道理的。因此,在选择$550的示例中,我需要jQuery获得年龄(18-24岁)和超额($1000)的值。然后,我将获取这两个值并插入mysql,如下所述。我是否可以用jQuery或PHP实现这一点?我乐于接受各种想法

<table>
    <tr>
    <td width="67"></td>
    <td width="102" id="excess">$1000</td>
    <td width="102" id="excess">$2000</td>
    </tr>
    <tr>
    <td width="67" id="age">18-24</td>
    <td width="102" id="monthly">$550</td>
    <td width="102" id="monthly">$650</td>
    </tr>
    <tr>
    <td width="67" id="age">25-29</td>
    <td width="102" id="monthly">$750</td>
    <td width="102" id="monthly">$850</td>
    </tr>
    </table>

您的HTML无效。不能有多个元素具有相同的
id
id
值(顾名思义)必须是唯一的。如果要对元素进行分类,请使用
。此答案的其余部分假设那些
id
值已更改为
class
名称

如果我理解您的意思,您希望使用
monthly
类处理对单元格的单击,并获取行中第一个单元格的文本以及列中第一个单元格的文本。使用jQuery(|)很容易做到这一点:

我们通过查找行via,然后查找其第一个单元格via和来查找行中的第一个单元格

我们通过
最近的
查找表,然后通过
查找
第一个
获取第一行,然后获取单击的单元格的名称,并通过查找具有相同索引的第一行中的单元格,来查找列中的第一个单元格

我认为这会起作用,PHP将简化为:

<?php
    $query = mysql_query("UPDATE table SET Monthly = '".$_POST['month']."' WHERE Age = '".$_POST['age']."' AND Excess = '".$_POST['excess']."'")or die(mysql_error());
?> 

您的HTML无效。不能有多个元素具有相同的
id
id
值(顾名思义)必须是唯一的。如果您试图对元素进行分类,请使用
。。。我有一个金发女郎的时刻。这个很好用。。非常感谢你抽出时间来帮忙!
$("td.monthly").click(function() {
    var $this = $(this),
        firstCellInRow = $this.closest('tr').find('td').first(),
        firstCellInColumn = $this.closest('table').find('tr').first().find('td').eq($this.index());
    console.log("First cell in row: " + firstCellInRow.text());
    console.log("First cell in column: " + firstCellInColumn.text());
});
$('.monthly').bind('click', function()
{
    lstrMonth  = $(this).html();
    lstrAge    = $(this).parent().find('td:first').html();
    lnIndex    = $(this).parent().index($(this));
    lstrExcess = $(this).parent('table').find('tr:first td:nth-child('+ (lnIndex + 1) +')');

    // do ajax call to a php script which execute the query
    $.post('ajax/update.php', 
    {
        age:    lstrAge,
        excess: lstrExcess,
        month:  lstrMonth  
    },
    function(data) // success
    {
        // do whatever you want
    });
});
<?php
    $query = mysql_query("UPDATE table SET Monthly = '".$_POST['month']."' WHERE Age = '".$_POST['age']."' AND Excess = '".$_POST['excess']."'")or die(mysql_error());
?>