使用jquery将表元素放在同一行中

时间:2012-03-29 21:39:35

标签: php jquery sql html-table

我真的很困惑我怎么能这样做。选择一个时,我需要获得两个<td>的值。例如,下面让我说我选择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>

MYSQL(使用上面的例子):

$query = mysql_query("UPDATE table SET Monthly = '$550' WHERE Age = '18-24' AND Excess = '$1000'")or die(mysql_error());

2 个答案:

答案 0 :(得分:2)

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

如果我了解您,您希望处理具有monthly类的单元格的点击,并获取该行中第一个单元格的文本以及该列中的第一个单元格。这可以通过jQuery(live example | source)轻松完成:

$("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());
});

我们通过closest找到行,然后通过findfirst找到第一个单元格,找到行中的第一个单元格。

我们通过closest查找表格找到列中的第一个单元格,然后通过findfirst获取第一行,然后获取index单击单元格并通过eq在第一行中找到具有相同索引的单元格。

答案 1 :(得分:0)

$('.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将简化为:

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