Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   TD load не работает (https://javascript.ru/forum/misc/35333-td-load-ne-rabotaet.html)

zaytsewa 07.02.2013 20:09

TD load не работает
 
Всем привет!
У меня есть таблица. Все нечётные строки видны пользователю, все чётные скрыты, и пока содержат только 1 элемент td. По клику на кнопку чётная строка становится видна и в её td-элемент загружается php-страница при помощи jquery load. Почему-то эта страница не отображается... Есть предположение, что из-за того, что на строку таблицы выводится 20 пикселей высотой...

Вопросы такие: поддерживает ли td load?
может ли высота tr динамически меняться в зависимости от содержимого?

заранее спасибо)

Deff 07.02.2013 21:24

zaytsewa,
1. Проверьте в браузере адрес подгружаемой страницы
2. создайте div блок с id="Test" и подгрузите страницу туда

$("#Test").load("Ccылка на страницу")

3. Если всё удачно - наверно неверный селектор элемента - выложите код (или ссылку на тестовик

zaytsewa 07.02.2013 21:50

в тестовый div всё грузится верно..
while ( $arr = mysql_fetch_array( $res ) )
	{
		++$counter;
		echo "<tr>";
		echo "<td style='display:none' class='order_id'>".$arr["id"]."</td>";
		echo "<td>".$counter."</td>";
		echo "<td>".$arr["date_start"]."</td>";
		echo "<td>".$arr["board_room"]."</td>";
		echo "<td>".$arr["count_days"]."</td>";
		echo "<td>".$arr["city_name"]."</td>";
		echo "<td>".$arr["region_name"]."</td>";
		echo "<td>".$arr["client_company_name"]."</td>";
		//$id = $arr["id"];
		echo "<td><button class='show_details' alt='Показать детали'>Подробнее</button></td></tr>";
		echo "<tr style='display:none;'><td colspan='9' class='details'></td></tr>";
	}



$(document).ready(function(){
$(".show_details").click(function(){
	var tr = $(this).parent().parent();
	var order_id = $(tr).find(".order_id").text();
	var details_tr = tr.next();
	
	if ( details_tr.is(":visible") )
		details_tr.hide();
	else
	{
		var details_td = tr.find(".details");
		if ( details_td.children().length == 0)
		{
			//$("#test").load("details.php?order_id="+order_id);
			details_td.load("details.php?order_id="+order_id);
			console.log("order_id="+order_id);
		}
		details_tr.show();
	}
});
});

рони 07.02.2013 22:08

zaytsewa,
var details_td = tr.find(".details").eq(0);
попробуйте добавить красное

zaytsewa 07.02.2013 23:00

не помогло

Deff 07.02.2013 23:08

zaytsewa,
Замените скрипт
$(document).ready(function(){
$(".show_details").click(function(){
	var tr = $(this).parents('tr:first');
	var order_id = tr.find(".order_id").text();
	var details_tr = tr.next();
	
	if ( details_tr.is(":visible") )
		details_tr.hide();
	else
	{
		var details_td = tr.find(".details");
		if ( details_td.children().length == 0)
		{
			//$("#test").load("details.php?order_id="+order_id);
			details_td.load("details.php?order_id="+order_id);
			console.log("order_id="+order_id);
		}
		details_tr.show();
	}
});
});

danik.js 08.02.2013 05:54

zaytsewa, тоесть вы внутрь td пытаетесь всунуть несколько tr > td ? И че получится? Правильно - ничего.

zaytsewa 08.02.2013 12:21

т.е. вы считаете что внутрь таблицы нельзя поместить ещё таблицу?? по-моему можно

danik.js 08.02.2013 12:27

Можно, но таблица это <table> а не <tr>

danik.js 08.02.2013 12:34

Сорри, я подумал что ваш код while ( $arr = mysql_fetch_array( $res ) ){..} генерирует ответ для xhr-запроса.

Что вообще возвращает страница details.php?order_id="+order_id ? Откройте ее в отдельной вкладке и нажмите Ctrl+U


Часовой пояс GMT +3, время: 16:44.