[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обновить родительскую страницу
XCross
Привет всем. Название темы, возможено, не совсем корректное.
Пока так. При нажатии на ссылку появляется новое окно. После того, как в нем ввели текст и нажали на кнопку текст записывается в базу. А тепер ьвопрос. Как обновить ту страницу, с которой открылось это окошко?
Нашел свойство window.opener, но как пользоваться незнаю. smile.gif



Спустя 32 минуты, 37 секунд (20.05.2011 - 06:26) kirik написал(а):
Попробуй так:
window.opener.location.reload()

Спустя 13 минут, 11 секунд (20.05.2011 - 06:39) XCross написал(а):
Вообще функция работает! Спасибо. Но когда пытаюсь обновить через несколько секунд, то нет.

var opn=setTimeout(window.opener.location.reload(),5000);


Делаю вот так. Без реакции.

<input type="submit" name="rename" value="Переименовать" onClick="upd();"/>

Спустя 4 минуты, 8 секунд (20.05.2011 - 06:43) kirik написал(а):
А так?
var opn=setTimeout(function() { window.opener.location.reload() }, 10000);

Спустя 2 часа, 55 минут, 12 секунд (20.05.2011 - 09:38) XCross написал(а):
Не выходит. sad.gif

Спустя 21 минута, 22 секунды (20.05.2011 - 09:59) ИНСИ написал(а):
kmaks попробуй так:
        var opn = setTimeout(
function() {
window.opener.location.reload();
},
10000
);


Спустя 39 минут, 12 секунд (20.05.2011 - 10:39) XCross написал(а):
<script type="text/javascript">
function
upd(){
var opn = setTimeout(
function() {
window.opener.location.reload();
},
10000
);
};
</script>
<div
style="margin-top: 30px;">
<title>
Изменение названия</title>
<center>

<font
color="red">
<?php


if(count($errors) != 0){

echo implode('<br>', $errors) .'<br>';

}
?>
</font>

<form
action="" method="POST">
<input
type="text" name="new_name" value="<?php echo $name['cat_name'];?>"/>
<input
type="submit" name="rename" value="Переименовать" onClick="upd();"/>
</form>
</center>
</div>


С задержкой не обновляет. А если просто

window.opener.location.reload(); 


то все гуд, но данные добавляются в базу медленнее, чем страничка обновится и увидеть результат можно только 2-3 раза нажав на кнопку.

Спустя 3 минуты, 5 секунд (20.05.2011 - 10:42) kirik написал(а):
Цитата (kmaks @ 20.05.2011 - 03:39)
но данные добавляются в базу медленнее, чем страничка обновится.

Гы)) таймаут - это не выход в такой ситуации (точнее костыль). AJAX'ом будет логичнее.

Спустя 9 минут, 20 секунд (20.05.2011 - 10:51) XCross написал(а):
Смотри(те):

Страница категорий.
Дабы не создавать еще одну страничку чтоб можно было переименовать я просто делаю окошко в котором всего: 1xText, 1xButton. И все. В новое окно передается id каегории, которую нужно переименовать. Дальше скрипт:
Берем исходное имя, вставляем его в text(input type), и если нажали на кнопку "применить", то UPDATE `category` WHERE `cat_id`...
А в это время на странице категорий должно обновится имя. Т.е. ненужно никакого аякса. Просто обновить ее автоматически.


Возможно, это не лучший вариант, но пока так. Дальше посмотрим.

Спустя 10 минут, 44 секунды (20.05.2011 - 11:02) kirik написал(а):
Смотри:
на странице категорий при нажатии "редактировать" создаешь JS'ом рядом input-text элемент, в который переносишь название категории. После редактирования нажимаешь кнопку "сохранить" (которую тоже создал JS'ом) и данные уходят AJAX'ом на сервер (типа cat_id=2&new_name={новое имя из поля}). На время выполнения запроса текстовое поле блокируется, вставляешь картинку-лоадер (крутящиеся часики). А после выполнения запроса просто убираешь то что создал, и вставляешь новое название на место старого.
Звучит сложнее, но на практике проще и аккуратнее.

Спустя 4 минуты, 24 секунды (20.05.2011 - 11:06) XCross написал(а):
Звучит проще, чем должен выглядеть код. Щас пошарюсь где-нибудь.

document.write
?
Но тогда все остально исчезнет.

Спустя 17 минут, 16 секунд (20.05.2011 - 11:23) ИНСИ написал(а):
kmaks ничего сложного нет, если через ajax (jquery) то как-то так надо:
function update() {
var id = '<?=$name['id']?>';
var title = $('input#title').val();

$.ajax({
type: 'POST',
url: 'update.php',
data: 'id=' + id + '&title=' + title,
success: function(data) {
if(data == '1')
window.opener.location.reload();
else
alert('ERROR!');
}
}
);
}


<form action="" method="POST">
<input
type="text" name="new_name" id="title" value="<?php echo $name['cat_name'];?>"/>
<input
type="submit" name="rename" value="Переименовать" onClick="update();"/>
</form>


В скрипте обработчике, при успехе выводи число 1 :)
P.S. Это пример. Надо поставить значения которые нужны, то есть путь к обработчику и т.д.

Спустя 5 минут, 39 секунд (20.05.2011 - 11:29) kirik написал(а):
Цитата (velbox @ 20.05.2011 - 04:23)
kmaks ничего сложного нет, если через ajax то как-то так надо:

Ты не указал что это пример с jquery

Спустя 1 минута, 5 секунд (20.05.2011 - 11:30) XCross написал(а):
Цитата
kmaks ничего сложного нет, если через ajax то как-то так надо:


Не-не.Я даж базового синтаксиса незнаю. Я к аяксу даж не прикоснусь так как 100% получится бяка(моими руками).

Спустя 26 минут, 33 секунды (20.05.2011 - 11:57) kirik написал(а):
Цитата (kmaks @ 20.05.2011 - 04:30)
Я к аяксу даж не прикоснусь так как 100% получится бяка(моими руками).

А если не прикоснёшься, то вообще ничего не получится smile.gif

Спустя 20 минут, 52 секунды (20.05.2011 - 12:18) XCross написал(а):
За 3 зайцами погонишся-ниодного не поймаешь smile.gif

Спустя 56 минут, 29 секунд (20.05.2011 - 13:14) ИНСИ написал(а):
Цитата
Ты не указал что это пример с jquery

Дополнил smile.gif


_____________
Обмен Ukash на WebMoney
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.