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

Форум PHP

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

 

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

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

тема: Помогите советом с простой проблемой
 
 автор: bibika   (18.10.2011 в 11:17)   письмо автору
 
 

Проблема в том, что разрабатывается форма редактирования, нужно что б после редактирование полей пользователь вертался на то поле что он только-что правил. Ajax, пока я не разглядываю, пока что додумался добавить в базу поле time, которое обновляется при каждой правке. Проблема в том, как вернуть пользователя на то поле что он только-что редактировал. Вот код:

простая формочка

<form action="submit.php" method="POST">
<b>Заголовок:</b> <br><input type="text" name="name"> <br>
<b>Описание:</b> <br><textarea name="text"></textarea><br>
<input type="submit" value="Отправить">
</form>


файл submit.php


<?php
$host
="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="tbl";
/*зєднання з БД*/
$db=mysql_connect($host,$user,$passw) or die ("<font color='red'>
Неможливо встановити з'єднання з базою даних. 
Зверніться до адміністратора.</font>"
);
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>
База даних зараз недоступна. 
Зверніться до адміністратора.</font>"
);

$name $_POST['name'];
$text $_POST['text'];
$chas time(true);
$query="insert into tbl values(0,'$name','$text','$chas')";
$ok=mysql_query($query) or die(mysql_error());
?> 


форма редактирования данных


<head>
<style>
a {text-decoration:none;color:green;font-size:20pt;}
</style>
</head>
<? 
$host
="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="tbl";
/*зєднання з БД*/
$db=mysql_connect($host,$user,$passw) or die ("<font color='red'>
Неможливо встановити
 з'єднання з базою даних. 
Зверніться до адміністратора.</font>"
);
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>
База даних зараз недоступна.
 Зверніться до адміністратора.</font>"
);

//$result=mysql_query("select * from tbl order by time desc limit 1"); 
 
$query "SELECT * FROM tbl order by id asc";
 
$result mysql_query($query);
 
$num_rows mysql_num_rows($result);
 
$num 1
 
$page $_GET['page']; 
$total=$num_rows/$num;
$total=ceil($total); 
                
$page_left="<a href= edit.php?page=". ($page 1) ."> < 
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;</a>"
;
// Проверяем нужны ли стрелки вперед
$nextpage " <a href= edit.php?page=". ($page 1) ."> > </a>";

@print(
$page_left.$nextpage);

if(empty(
$page) or $page 0$page 1;
  if(
$page $total$page $total;
  
$start $page $num $num;
 
$result mysql_query("SELECT * FROM tbl order by id asc LIMIT $start$num");
  while ( 
$msg[] = mysql_fetch_array($result))
?>
<br /><br /><br /><br /><br /><br />
<form method=POST action="update.php">
ID 
  <? for($i 0$i $num$i++)
{
?>
  <input type="text" name="id" <? echo 'value="'.$msg[$i]['id'].'"/>'?><br /><br />
Name <input type="text" name="name" <? echo 'value="'.$msg[$i]['name'].'"/>'?><br /><br />
Text <input type="text" name="text" <? echo 'value="'.$msg[$i]['text'].'"/>'?><br /><br />
Time <input type="text" name="time" <? echo 'value="'.$msg[$i]['time'].'"/>'; }?><br /><br />
<input type="submit" />
</form>


обработчик update.php


<?php

$host
="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="tbl";
/*зєднання з БД*/
$db=mysql_connect($host,$user,$passw) or die ("<font color='red'>
Неможливо встановити з'єднання з базою даних. 
Зверніться до адміністратора.</font>"
);
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>
База даних зараз недоступна. 
Зверніться до адміністратора.</font>"
);

$id=$_POST['id'];
$name=$_POST['name'];
$text=$_POST['text'];
$chas time(true);


//тут поміняти !!!
//$query='update herbarium set 
$query='update tbl set 
id="'
.$id.'",
name="'
.$name.'",
text="'
.$text.'",
time="'
.$chas.'"
where id="'
.$id.'"';
$ath mysql_query($query);

if (!
$ath)
   {
   echo 
"<div style='background-color:red;width:22%;padding:5px;
font-size:14pt;font-weight:bold;'>
Помилка! Не вдалося обновити дані.</div>"
;}
 else {
  echo 
"<div style='background-color:green;width:15%;
padding:5px;font-size:14pt;font-weight:bold;' >
Дані обновленo</div><br />"
;
                 
 
$result=mysql_query("select * from tbl order by time desc limit 1"); 
                
 while(
$row=mysql_fetch_array($result))

    echo 
$row[id] <br> $row[time] ";
    } 
                 
              print 
'<META HTTP-EQUIV="Refresh" CONTENT="2; URL=edit.php?page=1">';
             }
          
?>


проблема в этом месте,
 print '<META HTTP-EQUIV="Refresh" CONTENT="2; URL=edit.php?page=1">';


как перейти на страницу которая редактировалась только что

Спасибо

  Ответить  
 
 автор: Slo_Nik   (18.10.2011 в 11:54)   письмо автору
 
   для: bibika   (18.10.2011 в 11:17)
 

в атрибуте action укажите дополнительный параметр $page

<?php
 
echo "<form action='update.php?page=".$page."'>";

/* updeta.php */
echo '<META HTTP-EQUIV="Refresh" CONTENT="2; URL=edit.php?page='.$_GET['page'].'">';
?>

  Ответить  
 
 автор: bibika   (18.10.2011 в 14:51)   письмо автору
 
   для: Slo_Nik   (18.10.2011 в 11:54)
 

Спасибо за ответ, все работает. Как все просто.

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

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