Получение элементов таблицы в одной строке с помощью jquery - PullRequest
0 голосов
/ 30 марта 2012

Я действительно смущен тем, как я могу это сделать.Мне нужно получить значение два <td>, когда один выбран.Например, ниже, скажем, я выбираю тд с id = ежемесячно 550 долларов.Мне нужно получить возраст и превышение, которое соответствует этой цене.Я надеюсь это имеет смысл.ТАК в примере выбора 550 $ мне нужен jQuery, чтобы получить значения age (18-24) и extra (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 ]

2 голосов
/ 30 марта 2012

Ваш HTML неверен. Вы не можете иметь более одного элемента с одинаковыми значениями id, id (как следует из названия) должны быть уникальными. Если вы пытаетесь классифицировать элементы, используйте class. В остальной части этого ответа предполагается, что значения id были изменены на class names.

Если я вас понимаю, вы хотите обрабатывать щелчки по ячейкам с классом monthly и получать текст первой ячейки в строке вместе с первой ячейкой в ​​столбце. Это легко сделать с помощью jQuery ( живой пример | 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, затем находим ее первую ячейку с помощью find и first.

Мы находим первую ячейку в столбце, находя таблицу через closest, затем получая первую строку через find и first, затем получая index ячейки, по которой щелкнули и найти ячейку в первом ряду с тем же индексом через eq.

0 голосов
/ 30 марта 2012
$('.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());
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...