Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: header Refresh и <a name="lable" id="lable">
 
 автор: Yuriev   (06.04.2013 в 00:08)   письмо автору
 
 

<?php
function mod() {
    
$a '';
    if (isset(
$_COOKIE['name'])) return $_COOKIE['name'];
    if (isset(
$_POST['go'])) {
        if (!
$_POST['name']) $a 'Empty!';
        else {
            
setcookie('name'$_POST['name']);
            
header('Refresh: 0; url=http://www.dev/str.php#lable');
            exit ();
        }
    }
    
$a .= '<form action="http://www.dev/str.php#lable" method="post">';
    
$a .= '<input name="name" type="text" /><input name="go" type="submit" />';
    
$a .= '</form>';
    return 
$a;
}
echo 
'=<br><br><br><br><br><br><br><br><br><br> <a name="lable" id="lable"></a>'.mod();
echo 
'<br><br><br><br><br><br><br><br><br><br>=';
?>
При отправке пустого input name браузер прокручивает до метки.
При отправке заполненного input получаю белый экран (без исходного кода), и только после "Обновить" (ctrl+R) печатает куку, но к метке не прокручивает.
Если убрать метку из адреса в header Refresh, то работает сразу.
Как бы сделать, чтоб после отправки формы браузер и показывал сразу, и прокручивал до метки?
Спасибо

  Ответить  
 
 автор: confirm   (06.04.2013 в 03:39)   письмо автору
 
   для: Yuriev   (06.04.2013 в 00:08)
 

Cookie записывается на диск тогда, когда пользователь покидает страницу, поэтому она и доступна становиться тогда "и только после "Обновить" (ctrl+R) печатает куку", то есть при повторном посещении страницы.
А якорями на странице управляет браузер, а не сервер, и ...str.php#lable браузеру не указ.

  Ответить  
 
 автор: Yuriev   (06.04.2013 в 12:02)   письмо автору
 
   для: confirm   (06.04.2013 в 03:39)
 

confirm, можно вас попросить не писать в этой теме ибо такие "перлы"
str.php#lable браузеру не указ
я понять не в состоянии.

  Ответить  
 
 автор: confirm   (06.04.2013 в 12:17)   письмо автору
 
   для: Yuriev   (06.04.2013 в 12:02)
 

Это ваши перлы, а не мои )

Вы через action хотите передать якорь для дальнейшего перенаправляения на него?
action="http://www.dev/str.php#lable" - не получите вы хеша на сервере, это навигация внутри страницы. Выполните такой пример:
<?
echo $_SERVER['REQUEST_URI'];
?>
<a href="script.php?v=1#as">GO</a>


При запросе страницы по ссылке, в адресной строке браузера вы увидите весь url, включая хеш якоря, а вот сервер выведет только script.php?v=1.

PS. Кстати - <a name="lable" id="lable"></a> - не обязательно, ваша форма, любой иной элемент, может иметь id="lable", это и будет якорь.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования