jQuery, назначьте текст td переменной и опубликуйте ее - PullRequest
0 голосов
/ 25 августа 2010

Я относительно новичок в JavaScript и у меня проблема, надеюсь, вы поможете

Что я пытаюсь сделать, это

$("tr:not(:first-child)").each(function(){
                            var sitename = $("this" + "td:nth-child(1)").text();
                            var type= $("this" + "td:nth-child(2)").text();
                            var address= $("this" + "td:nth-child(3)").text();
                            var city= $("this" + "td:nth-child(4)").text();
                            var lat= $("this" + "td:nth-child(5)").text();
                            var long= $("this" + "td:nth-child(6)").text();
                            var ftime= $("this" + "td:nth-child(7)").text();
                            $.post('./watchdog.php',{ oadata: sitename});
                    }).end().remove();

Я выбираю "tr" в таблице, кроме первой, которая содержит "th". Тогда я просто раздеваю тд и присваиваю текстовое значение переменной. В конце я отправляю эти данные в PHP-скрипт, который в основном вставляет их в БД MySQL. проблема в том, что я продолжаю получать значение NULL в базе данных.

Вот моя таблица, сгенерированная в HTML

Site Name   Type    Address City    Lat Long    Fault Time
ISB056  Spur    Opposite Plot No. 435, Sector I-10/4    Islamabad   73.04393    33.64677    12:02 PM
ISB078  Spur    SEECS NUST H-12 Islamabad   Islamabad   72.990044   33.64246    12:02 PM

Ответы [ 2 ]

0 голосов
/ 25 августа 2010

Вы не должны использовать 'this', но this, поэтому удалите свои кавычки.

Вы также должны использовать классы.

<tr class="site">
   <td class="sitename">...</td>
   ...
</tr>

Это сделает ваш код проще для чтения идля отладки:

$("tr.site").each(function(){
    var sitename = $(".sitename",this)
})
0 голосов
/ 25 августа 2010

Это

$("this" + "td:nth-child(1)").text()

генерирует селектор thistd:nth-child(1), который вообще не имеет смысла. Я думаю, что вы хотите:

$(this).find("td:nth-child(1)").text()

Но проще было бы просто взять массив с, например,

var data = $(this).children('td').map(function() {
                 return $(this).text();
           }).get();

, а затем отправьте данные как

$.post('./watchdog.php',{ sitename: data[0], type: data[1],...});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...