Как динамически получить информацию об определенной ячейке строки в таблицах данных jquery

У меня проблема с получением сведений об определенной ячейке в строке таблиц данных jquery. То, что я пытаюсь сделать, - это конкретная ячейка строки в Datatable. Я пытаюсь получить все данные, относящиеся к ней, и отобразить их как вывод.

Например, все названия стран извлекаются из базы данных и отображаются в определенном столбце таблицы данных. Теперь я хочу, чтобы при нажатии на название страны отображались все соответствующие города. Я надеюсь, что это имеет достаточно смысла. Мне нужно сделать это динамически, не обновляя страницу.

Вот проблеск кода:

$(document).ready(function() {
oTable = $('#datatables').dataTable( {
    alert("hi")
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "../getcities.php",
    "aData" : "POST","getcities.php?cname="+cname
    "aoColumns": [
        { "sClass": "center", "bSortable": false },
        null,
        { "sClass": "center" },
    ]
} );

$('#datatables tbody tr td').live( 'click', function () {
    alert("hi")
    var nTr = this.parentNode.parentNode;

    // I need to display the data here in a dialog box
} );
}

Приведенный выше код может быть не совсем правильным, поскольку я сказал, что я все еще новичок в jquery datatables и Ajax. Вот html, который я пытаюсь:

<div>                           
<table id = "datatables" class="display">
<thead>
    <tr>
        <th></th>
        <th>Country Name</th>
    </tr>
<thead>
<tbody>
    <?while($row=mysql_fetch_array($result)){
    <tr>                            
        <td class="center" id="cname" value="cname"><?= $row['cname']?></td>
    </tr>
    <?}}?>
</tbody>

Код в getcities.php:

// Here I am trying to store all the cities corresponding to the country name in an array and returning it
<?php
 country = $_POST['cname'];
 var arr = new Array();
 arr = mysql_fetch_array(mysql_query("SELECT cityname FROM dbtable WHERE cname = '.country.'"))

return arr; 
?>

Поскольку я новичок в Datatables, я не понимаю, как это сделать. Я использую PHP в качестве языка сценариев

Пожалуйста помоги


person Neal    schedule 23.09.2012    source источник
comment
@Зарегистрированный пользователь: посмотрите мое обновление сейчас   -  person Neal    schedule 23.09.2012


Ответы (1)


Попробуйте следующий код

$('#datatables tbody tr td img').live( 'click', function () {
    var iPos = oTable.fnGetPosition( this );
    if(iPos!=null){
        var aData = oTable.fnGetData( iPos );//get data of the clicked row
        var colData = aData[1];//get column data of the row
    }
} );

Также взгляните на это: Как выбрать строку в таблице данных Jquery

person Daniel    schedule 23.09.2012
comment
Я получаю эту ошибку: предупреждение DataTables (идентификатор таблицы = 'datatables'): запрошен неизвестный параметр '1' из источника данных для строки 0 - person Neal; 23.09.2012
comment
см. мой обновленный ответ, oTable.fnGetData( iPos ) (кстати, aData[1] - это столбец номер 2) - person Daniel; 23.09.2012
comment
Я попытался использовать функцию .on() вместо делегата, но снова получаю ту же ошибку. - person Neal; 23.09.2012
comment
@Neal, скажем, работает, если вы используете такой делегат $("#datatables tbody").delegate("tr", "click", function() {? - person Daniel; 23.09.2012
comment
@Neal немного погуглите об этом, например datatables.net/forums/discussion/5331/… , также попробуйте var colData = aData[0] (получить первый столбец вместо второго) - person Daniel; 23.09.2012