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

zaytsewa 08.02.2013 12:46

там несколько таблиц друг под другом

Deff 08.02.2013 12:52

zaytsewa,
Выложите HTML всовываемого

zaytsewa 08.02.2013 13:18

<?php
	$order_id = $_GET['order_id'];
	$query = "...";
	$res = mysql_query( $query );

	while ( $arr = mysql_fetch_array( $res ) )
	{	
		echo "<table>";
		echo "<tr>";
                ...
		echo "</tr>";
		echo "<tr>";
                ...
		echo "</tr>";
		echo "</table>";
		echo "<br><br>";
	}
?>

Deff 08.02.2013 13:22

zaytsewa,
Присвойте <td colspan='9' class='details'> id="test"
И всовывайте командой
$("#test").load("details.php?order_id="+order_id );

zaytsewa 08.02.2013 14:01

нашла ошибку, всем спасибо!!! не в той строке искала details_td

рони 08.02.2013 14:01

Deff,
куча одинаковых id?

Deff 08.02.2013 14:24

рони,
Вроде спичь, что табл много, а td для load - удинственный в одной из таблиц


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