|
|
|
| Проблема в том, что разрабатывается форма редактирования, нужно что б после редактирование полей пользователь вертался на то поле что он только-что правил. 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) ."> <
</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">';
|
как перейти на страницу которая редактировалась только что
Спасибо | |
|
|
|
|
|
|
|
для: 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'].'">';
?>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(18.10.2011 в 11:54)
| | Спасибо за ответ, все работает. Как все просто. | |
|
|
|