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

Форум PHP

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

 

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

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

тема: Обновление части страницы <div>
 
 автор: tegis   (01.10.2009 в 11:55)   письмо автору
 
 

Добрый день.
Можно ли с помощью php обновить какую то часть страницы.. А конкретнее блок <div> К примеру...

<?
$q
=1
if (
$q = =1) {// тут нужно как то обновить блог  див, а конкретно вывести 
$n = echo "Да, да это";} else {$n = echo "Нет, не это"; }
 
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="style.css" rel="stylesheet" type="text/css">
</head><body>
<div ><?= $n?></div>
  
</body>
</html> 


Нужно именно обновление этого div

  Ответить  
 
 автор: angelcorpc   (01.10.2009 в 12:39)   письмо автору
 
   для: tegis   (01.10.2009 в 11:55)
 

скорей всего вам надо вот это:
http://softtime.ru/forum/srch.php?id_forum=4&name=ajax&numberthemes=30&srchwhere=1&id_forum=4&logic=1&send=%CD%E0%E9%F2%E8

  Ответить  
 
 автор: Tegis   (01.10.2009 в 12:48)   письмо автору
 
   для: angelcorpc   (01.10.2009 в 12:39)
 

>> скорей всего вам надо вот это:
>>http://softtime.ru/forum/srch.php?id_forum=4&name=ajax&numberthemes=30&srchwhere=1&id_forum=4&logic=1&send=%CD%E0%E9%F2%E8
По сути мало полезного я тут нашёл...

  Ответить  
 
 автор: Лена   (01.10.2009 в 13:04)   письмо автору
 
   для: Tegis   (01.10.2009 в 12:48)
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 

"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
    <link href="style.css" rel="stylesheet" type="text/css"> 
</head>
<body> 
<div>
    <?php 
    $q
=1;  
        if (
$q == 1$n "Да, да это";
        else 
$n "Нет, не это";
    print 
$n
    
?>
</div> 
</body> 
</html>

Если Вам только этот блок обновить, а другие оставить без изменений, то Вам правильно посоветовали, что делать.

  Ответить  
 
 автор: cheops   (01.10.2009 в 13:09)   письмо автору
 
   для: tegis   (01.10.2009 в 11:55)
 

Это скорее область JavaScript, который позволяет с одной стороны менять содержимое отдельного блока в HTML-коде, а с другой стороны посылать асинхронные запросы на сервер.

  Ответить  
 
 автор: angelcorpc   (01.10.2009 в 16:37)   письмо автору
 
   для: tegis   (01.10.2009 в 11:55)
 

Если вы хотите изменить див без перезагрузки страницы то моя ссылка для вас, а если просто изменять текст внутри див, то Лена вам правильно подсказала.

  Ответить  
 
 автор: Tegis   (01.10.2009 в 21:53)   письмо автору
 
   для: angelcorpc   (01.10.2009 в 16:37)
 

Нет, вариант лены однозначно не подходит сейчас объясню не этот пример.. А конкретно свою страницу..

<? 

session_start
();

if(isset(
$_GET['submit'])) {
    
    if(!empty(
$_GET['code'])) {
    
    if(
$_GET['code'] == $_SESSION['rand_code']) {
    
if (isset(
$_GET['path'])) {$path $_GET['path'];}
if (isset(
$_GET['linck'])) {$linck $_GET['linck'];}
header("Content-Disposition: attachment; filename=\"$linck\"");   
header("Content-Type: application/octet-stream; name=\"$linck\"");   
header("Content-Length: ".filesize($path.$linck));
} else {
        
            
$error "Вы ввели не верный код.";
        
        }
        
    } else {
    
        
$error "Вы не ввели код.";
    
    }

}


include(
'blocks/bd.php');
if (isset(
$_GET['title'])) {$title $_GET['title'];}
if (isset(
$_GET['executor'])) {$executor $_GET['executor'];} else{echo "<p>Этот файл не найден на сервере!</p>"; exit();}
if (isset(
$_GET['linck'])) {$linck $_GET['linck'];} else{echo "<p>Этот файл не найден на сервере!</p>"; exit();}
$result mysql_query("SELECT name_folder,name FROM executor WHERE id=$executor",$db);
if(
$result) {
$myrow mysql_fetch_array($result);
$executor2 $myrow['name_folder']; 
$path "gtr/".$executor2."/";

} else {}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo "Скачать gtr ".$myrow['name']." - ".$title?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta name="description" content="<?php echo "Скачать gtr ".$myrow['name']." - ".$title?>">
<meta name="keywords" content="<?php echo "Скачать gtr ".$myrow['name']." - ".$title?>">
</head><body>
<div id='safety'><div id='safety_top'><h3 class='safety'><?= "Скачать  ".$myrow['name']." - ".$title?></h3></div><div id='safety_booton'>
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'?>
<?php 
if(!empty($accept)) echo '<div class="accept">'.$accept.'</div>'?>
  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" enctype="multipart/form-data">
    <label><img src="captcha.php"/><br>
    Введите код безопасности.(маленькими буквами!)
    <input type="text" name="code" id="safety_text_field"/>
    <input name="executor" type="hidden" value="<?= $executor ?>">
    <input name="title" type="hidden" value="<?= $title ?>">
    <input name="linck" type="hidden" value="<?= $linck ?>">
    <input name="path" type="hidden" value="<?= $path ?>">
      </label><br><input type="submit" name="submit" value="Скачать" id="safety_button"/>
    </form>
  </div></div>
  
</body>
</html>


Дело в том что при не верном вводе кода безопасности перед формой создаётся
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'?>

А если потом ввести правильный код безопасности то срабатывает
    
if (isset($_GET['path'])) {$path = $_GET['path'];}
if (isset($_GET['linck'])) {$linck = $_GET['linck'];}
header("Content-Disposition: attachment; filename=\"$linck\"");   
header("Content-Type: application/octet-stream; name=\"$linck\"");   
header("Content-Length: ".filesize($path.$linck));

А там так и остаётся
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'?>
с выводом "Вы ввели не верный код"

Я с начало хотел чтобы после вывода:
    
if (isset($_GET['path'])) {$path = $_GET['path'];}
if (isset($_GET['linck'])) {$linck = $_GET['linck'];}
header("Content-Disposition: attachment; filename=\"$linck\"");   
header("Content-Type: application/octet-stream; name=\"$linck\"");   
header("Content-Length: ".filesize($path.$linck));

страница сама закрывалась, но так и не нашёл способ реализации... Поэтому хотелось бы хотя бы убрать надпись...

  Ответить  
 
 автор: Tegis   (02.10.2009 в 20:32)   письмо автору
 
   для: Tegis   (01.10.2009 в 21:53)
 

Есть тут кто?

  Ответить  
 
 автор: cheops   (02.10.2009 в 20:50)   письмо автору
 
   для: Tegis   (01.10.2009 в 21:53)
 

Не понятно, а где вы сам файл отдаете? Зачем отсылать HTTP-заголовки
<?php
header
("Content-Disposition: attachment; filename=\"$linck\"");    
header("Content-Type: application/octet-stream; name=\"$linck\"");    
header("Content-Length: ".filesize($path.$linck));
?>

Если после этого вы страницу закрываете?

  Ответить  
 
 автор: Tegis   (03.10.2009 в 10:35)   письмо автору
 
   для: cheops   (02.10.2009 в 20:50)
 

>Не понятно, а где вы сам файл отдаете? Зачем отсылать HTTP-заголовки
>
<?php
>header("Content-Disposition: attachment; filename=\"$linck\"");    
>
header("Content-Type: application/octet-stream; name=\"$linck\"");    
>
header("Content-Length: ".filesize($path.$linck));
>
?>

>Если после этого вы страницу закрываете?

Это в прошлом, Сейчас бы обновить текст... Что бы нее оставалось "Не верный код..."

  Ответить  
 
 автор: angelcorpc   (07.10.2009 в 15:23)   письмо автору
 
   для: Tegis   (03.10.2009 в 10:35)
 

<?php
if(isset($_GET['submit']))
{
  if(!empty(
$_GET['code']))
  {
    if(
$_GET['code'] == $_SESSION['rand_code'])
    {
      if (isset(
$_GET['path'])) {$path $_GET['path'];}
      if (isset(
$_GET['linck'])) {$linck $_GET['linck'];}
      
header("Content-Disposition: attachment; filename=\"$linck\"");   
      
header("Content-Type: application/octet-stream; name=\"$linck\"");   
      
header("Content-Length: ".filesize($path.$linck));
    }
    else
    {
      
$error "Вы ввели не верный код.";
    }
  }
  else
  {
    
$error "Вы не ввели код.";
  }
}
?>

Если проследить логику, то проверьте что содержится в переменных $_GET['code'] и $_SESSION['rand_code'] (возможно не правильно обрабатывается условие if($_GET['code'] == $_SESSION['rand_code']) ). Но вообще я бы посоветовал как-то упростить логику... и еще, хотя и маловероятно, перед проверкой переменной $error делать ее очистку.

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

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