[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Якоря, JS?
WisesT
Понимаю, что "понедельник день тяжелый", но
Доброе утро!;)

Подскаите пожалуйста.
Есть страничка обновления заказов.
Выводятся они не по одному, а определенное колличество форм (1 заказ - 1 форма), ну и соответственно к каждой форме по кнопочке "Сохранить".
Вот код:
Свернутый текст
<?

/* Соединяемся с базой данных */


// Переменная хранит число сообщений выводимых на станице
$num = 100;
//
Извлекаем из URL текущую страницу
$page = !empty($_GET['page']) ? $_GET['page'] : NULL;
//
$page = $_GET['page'];
//
Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM zakazy WHERE `na_kogda`=CURDATE()");
$posts = mysql_result($result, 0);
//
Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
//
Определяем начало сообщений для текущей страницы
$page = intval($page);
//
Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
//
Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
//
Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT *, DATE_FORMAT(`time`, '%d-%m-%Y %H:%i:%s') as `formatTime`, DATE_FORMAT(`na_kogda`, '%d-%m-%Y') as `formatTime1` FROM zakazy WHERE `na_kogda`=CURDATE() LIMIT $start, $num");
//
В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))

/* Если была нажата кнопка редактирования, вносим изменения */
if(@$_POST['submit_edit']) {
$na_kogda = date('Y-m-d', strtotime($_POST['test_na_kogda']));
$query = "UPDATE $table SET gotovnost='{$_POST['test_gotovnost']}', firma='{$_POST['test_firma']}', `na_kogda` = '".$na_kogda."', adress='{$_POST['test_adress']}', imya='{$_POST['test_imya']}', tel='{$_POST['test_tel']}', ves='{$_POST['test_ves']}', kuda='{$_POST['test_kuda']}', oplata='{$_POST['test_oplata']}', primechaniya='{$_POST['test_primechaniya']}', prinyal='{$_POST['test_prinyal']}', kurier='{$_POST['test_kurier']}', status='{$_POST['test_status']}' WHERE nomer='{$_POST['update']}'";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die (mysql_error());
header('Location: ' . $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']);
exit;
}

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./update_data_today.php?page=1><<</a>
<a href= ./update_data_today.php?page='
. ($page - 1) .'><</a> ';
//
Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./update_data_today.php?page='. ($page + 1) .'>></a>
<a href= ./update_data_today.php?page='
.$total. '>>></a>';

//
Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./update_data_today.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./update_data_today.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./update_data_today.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./update_data_today.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC
\"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=
\"http://www.w3.org/1999/xhtml\">

<head>
<meta http-equiv=
\"Content-Type\" content=\"text/html; charset=windows-1251\">


<title>Редактирование сегодняшних заказов</title>

<style type=
\"text/css\">

</style>
<META http-equiv='refresh' content='60,http://192.168.1.10/update_data_today.php'>
</head>

<body>



<tr><td>

"
);

//
Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;


/* Цикл вывода данных из базы конкретных полей */
//for($i = 0; $i < $num; $i++)

//
while ($row = mysql_fetch_array($res))
for($i = 0; $i < $num; $i++):?>

<
META http-equiv='refresh' content='60,http://192.168.1.10/update_data_today.php'>
<
form action="" method="post" name="edit_form">
<
input type="hidden" name="update" value="<?php echo $postrow[$i]["nomer"]?>" />

<
table width="100%" border="1" cellpadding="0" cellspacing="0">
<
tr>
<
td colspan="2" style="border-bottom:solid 1px #CCCCCC;"><b><i><div nomer="num"><pre><font color="#0000FF">Номер заказа: </font><font size=5> <?php echo $postrow[$i]["nomer"]?></font> <font color="#0000FF"> Дата: </font> <?php echo $postrow[$i]['formatTime']?></pre></div></b></i></td>
</
tr>
<
tr>
<
td bgcolor="#1C86EE" width="150">На когда:</td><td><input type="text" value="<?php echo $postrow[$i]['formatTime1'] ?>" name="test_na_kogda"/></td>
<
td bgcolor="#1C86EE" width="150">Готовность заказа:</td><td><input type="text" value="<?php echo $postrow[$i]['gotovnost']?>" name="test_gotovnost"/></td>
<
td bgcolor="#1C86EE" width="150">Фирма:</td><td><input type="text" value="<?php echo htmlspecialchars($postrow[$i]['firma'])?>" name="test_firma"/></td>
</
tr>


<
tr>
<
td bgcolor="#1C86EE">Адресс:</td><td><input type="text" value="<?php echo $postrow[$i]['adress']?>" name="test_adress"/></td>
<
td bgcolor="#1C86EE">Имя:</td><td><input type="text" value="<?php echo $postrow[$i]['imya']?>" name="test_imya"/></td>
<
td bgcolor="#1C86EE">Телефон:</td><td><input type="text" value="<?php echo $postrow[$i]['tel']?>" name="test_tel"/></td>
</
tr>

<
tr>
<
td bgcolor="#1C86EE">Вес:</td><td><input type="text" value="<?php echo $postrow[$i]['ves']?>" name="test_ves"/></td>
<
td bgcolor="#1C86EE">Куда:</td><td><input type="text" value="<?php echo $postrow[$i]['kuda']?>" name="test_kuda"/></td>
<
td bgcolor="#1C86EE">Оплата:</td><td>
<
select name="test_oplata">
<
option value="Выбрать" <?php if ($postrow[$i]['oplata'] == "Выбрать") echo 'selected="selected"'?> >Выбрать</option>
<
option value="Нал" <?php if ($postrow[$i]['oplata'] == "Нал") echo 'selected="selected"'?> >Наличный расчет</option>
<
option value="Безнал" <?php if ($postrow[$i]['oplata'] == "Безнал") echo 'selected="selected"'?> >Безналичный расчет</option>
<
option value="Получатель" <?php if ($postrow[$i]['oplata'] == "Получатель") echo 'selected="selected"'?> >Оплата получателем</option>
</
select>
</
td>
</
tr>

<
tr>
<
td bgcolor="#1C86EE">Примечания:</td>
<
td><input type="text" value="<?php echo $postrow[$i]['primechaniya']?>" name="test_primechaniya"/></td>
<
td bgcolor="#1C86EE">Принял:</td>
<
td>
<
select name="test_prinyal">
<
option value="Алена" <?php if ($postrow[$i]['prinyal'] == "Алена") echo 'selected="selected"'?> >Алена</option>
<
option value="Дима" <?php if ($postrow[$i]['prinyal'] == "Дима") echo 'selected="selected"'?> >Дима</option>
<
option value="Катя" <?php if ($postrow[$i]['prinyal'] == "Катя") echo 'selected="selected"'?> >Катя</option>
<
option value="Маша Г" <?php if ($postrow[$i]['prinyal'] == "Маша Г") echo 'selected="selected"'?> >Маша Г</option>
<
option value="Маша Б" <?php if ($postrow[$i]['prinyal'] == "Маша Б") echo 'selected="selected"'?> >Маша Б</option>
<
option value="Оксана" <?php if ($postrow[$i]['prinyal'] == "Оксана") echo 'selected="selected"'?> >Оксана</option>
<
option value="Света" <?php if ($postrow[$i]['prinyal'] == "Света") echo 'selected="selected"'?> >Света</option>
<
option value="Юля" <?php if ($postrow[$i]['prinyal'] == "Юля") echo 'selected="selected"'?> >Юля</option>
<
option value="Выбрать" <?php if ($postrow[$i]['prinyal'] == "Выбрать") echo 'selected="selected"'?> >Выбрать</option>
</
select>
</
td>
<
td bgcolor="#1C86EE">Курьер:</td>
<
td>
<
select name="test_kurier">
<
option value="Не указан" <?php if ($postrow[$i]['kurier'] == "Не указан") echo 'selected="selected"'?> >Не указан</option>
<
option value="Вова" <?php if ($postrow[$i]['kurier'] == "Вова") echo 'selected="selected"'?> >Вова</option>
<
option value="Владимир" <?php if ($postrow[$i]['kurier'] == "Владимир") echo 'selected="selected"'?> >Владимир</option>
<
option value="Антон" <?php if ($postrow[$i]['kurier'] == "Антон") echo 'selected="selected"'?> >Антон</option>
<
option value="Антон пеш" <?php if ($postrow[$i]['kurier'] == "Антон пеш") echo 'selected="selected"'?> >Антон пеш</option>
<
option value="Рома" <?php if ($postrow[$i]['kurier'] == "Рома") echo 'selected="selected"'?> >Рома</option>
<
option value="Игорь" <?php if ($postrow[$i]['kurier'] == "Игорь") echo 'selected="selected"'?> >Игорь</option>
<
option value="Костя" <?php if ($postrow[$i]['kurier'] == "Костя") echo 'selected="selected"'?> >Костя</option>
<
option value="Олег" <?php if ($postrow[$i]['kurier'] == "Олег") echo 'selected="selected"'?> >Олег</option>
<
option value="Леша И." <?php if ($postrow[$i]['kurier'] == "Леша И.") echo 'selected="selected"'?> >Леша И.</option>
<
option value="Л" <?php if ($postrow[$i]['kurier'] == "Л") echo 'selected="selected"'?> >Л</option>
<
option value="Паша" <?php if ($postrow[$i]['kurier'] == "Паша") echo 'selected="selected"'?> >Паша</option>
<
option value="Степа" <?php if ($postrow[$i]['kurier'] == "Степа") echo 'selected="selected"'?> >Степа</option>
<
option value="Дима" <?php if ($postrow[$i]['kurier'] == "Дима") echo 'selected="selected"'?> >Дима</option>
<
option value="Женя" <?php if ($postrow[$i]['kurier'] == "Женя") echo 'selected="selected"'?> >Женя</option>
</
select>
</
td>

<
tr>
<
td bgcolor="#1C86EE">Статус:</td>
<
td>
<
select name="test_status">
<
option value="Не указано" <?php if ($postrow[$i]['status'] == "Не указано") echo 'selected="selected"'?> >Не указано</option>
<
option style="color: green; font-weight: bold;" value="Сообщено" <?php if ($postrow[$i]['status'] == "Сообщено") echo 'selected="selected"'?> >Сообщено</option>
<
option style="color: OrangeRed; font-weight: bold;" value="Забрано" <?php if ($postrow[$i]['status'] == "Забрано") echo 'selected="selected"'?> >Забрано</option>
<
option style="color: red; font-weight: bold;" value="Отменено" <?php if ($postrow[$i]['status'] == "Отменено") echo 'selected="selected"'?> >Отменено</option>

</
select>
</
td>
</
tr>
<
tr>
<
td colspan="2" align="center">
<
input type="submit" name="submit_edit" class="buttons" style="background-color:#BC8F8F" value="Сохранить изменения"/>

</
td>
</
tr>
</
table>
</
form>

<?
php endfor ?>

<?
php
// <input type="button" name="nazad" class="buttons" value="На главную" onclick="self.location.href='http://192.168.1.10';"/>
//
Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

/* Закрываем соединение */
mysql_close();

/* Выводим ссылку возврата */
//echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

?>
</
td>
</
tr>
</
table>



</
td>
</
tr>


</
table>

</
center>

</
body>

Что собственно нужно.
После нажатия на кнопку "Сохранить изменения" данные обновляются и обновляется страница. Обновляется она естественно в начало.
Нужно сделать так, что бы после нажатия на кнопку и обновления страница, мы оказывались на том же заказе, который обновляли.

Подсказали, что это можно сделать якорем.
На постоянное место - естественно можно. Но у меня таблица не постоянна. заказы меняются каждый день.
Как же (возможно_ сделать так, что бы при обработке запроса и выводе данных в таблицу, каждой форме генерировался свой якорь, ну и при обновлении закидывало именно на него.
Это как вижу я... а что скажете вы?

П.С.
На всяк пожарный. Вот скрин странички

user posted image

Спасибо.



Спустя 1 час, 1 минута, 53 секунды (30.01.2012 - 12:48) UnWind написал(а):
При выводе, например в атрибуте выставляешь id записи и все тут.
А далее по этому якорю возвращаешься назад к нужной записи.
Тут все так же просто, как и было ранее и работает по одному и тому же принципу как и во всех моих объяснениях. wink.gif

Спустя 9 минут, 59 секунд (30.01.2012 - 12:58) WisesT написал(а):
Но вот именно сегодня, я тебя нифига не понял xD

Спустя 4 минуты, 12 секунд (30.01.2012 - 13:02) UnWind написал(а):
WisesT
Ладно, объясню доступней.
Например у тебя есть база пользователей и тебе нужно вывести их логины жирным.
Что ты будешь делать ? (Пример на цикле while и mysql_fetch_array)
<?php
while($select = mysql_fetch_array($query)) {
echo '<b>' . $select['login'] . '</b>';
}

Что мешает точно так же привязать якоря в виде id ? ;)

Спустя 3 минуты, 41 секунда (30.01.2012 - 13:06) redreem написал(а):
вот незамысловатый примерчик "как прицепить якорь к форме".

<?php

$formNum = 10;
$content = '';


for ($i = 1; $i <= $formNum; $i++) {
$cFormBegin = '<form action="#f'.$i.'" style="width:80%;margin:20px auto;height:500px;background:#faa">';
$cFormAnchor = '<a name="f'.$i.'"></a>';
$cFormContent = '<span style="font-size:30px">Форма f'.$i.'</span>';
$cFormSubmit = '<input type="submit" value="Отправить"/>';
$cFormEnd = '</form>';

$content .= $cFormAnchor.$cFormBegin.$cFormContent.$cFormSubmit.$cFormEnd;
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<meta
http-equiv="Content-Type" content="text/html;charset=windows-utf-8" />
<title>
Anchor test</title>

</head>
<body
style="width:100%">

<?php
echo $content; ?>

</body>
</html>

Спустя 12 минут, 41 секунда (30.01.2012 - 13:19) WisesT написал(а):
тоесть нужно что-то вроде
<a name="$postrow[$i]["nomer"]"></a><form action="" method="post" name="edit_form">
<input
type="hidden" name="update" value="<?php echo $postrow[$i]["nomer"]?>" />

<table
width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td
colspan="2" style="border-bottom:solid 1px #CCCCCC;"><b><i><div nomer="num"><pre><font color="#0000FF">Номер заказа: </font><font size=5> <?php echo $postrow[$i]["nomer"]?></font> <font color="#0000FF"> Дата: </font> <?php echo $postrow[$i]['formatTime']?></pre></div></b></i></td>
</tr>

бла бла
<tr>
<td
colspan="2" align="center">
<input
type="submit" name="submit_edit" class="buttons" style="background-color:#BC8F8F" value="Сохранить изменения"/>

</td>
</tr>
</table>
</form>


а вот как к кнопочке привязать?

Спустя 2 минуты, 10 секунд (30.01.2012 - 13:21) UnWind написал(а):
WisesT
Цитата
а вот как к кнопочке привязать?

Читай про якоря)

Спустя 1 минута, 22 секунды (30.01.2012 - 13:22) WisesT написал(а):
ааа, стоп.
вот так наверное
<a name="#$postrow[$i]["nomer"]"></a><form action="#$postrow[$i]["nomer"]" method="post" name="edit_form">
<input
type="hidden" name="update" value="<?php echo $postrow[$i]["nomer"]?>" />

<table
width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td
colspan="2" style="border-bottom:solid 1px #CCCCCC;"><b><i><div nomer="num"><pre><font color="#0000FF">Номер заказа: </font><font size=5> <?php echo $postrow[$i]["nomer"]?></font> <font color="#0000FF"> Дата: </font> <?php echo $postrow[$i]['formatTime']?></pre></div></b></i></td>
</tr>

бла бла
<tr>
<td
colspan="2" align="center">
<input
type="submit" name="submit_edit" class="buttons" style="background-color:#BC8F8F" value="Сохранить изменения"/>

</td>
</tr>
</table>
</form>


хотя....

Спустя 2 минуты, 42 секунды (30.01.2012 - 13:25) redreem написал(а):
тебе надо внести в форму или рядом с ней якорь
<a name="$postrow[$i]["nomer"]'"></a>

Спустя 54 секунды (30.01.2012 - 13:26) WisesT написал(а):
якорь то внести можно.
Как заставить после нажатия на кнопку, обновить данные и вернуться к якорю?

Спустя 14 секунд (30.01.2012 - 13:26) UnWind написал(а):
WisesT
Проверяй сам) А то пока мы будем отвечать тебе на все, ты так ничему и не научишься)
А если уже совсем в ступор впадешь, то тогда уже поможем.

Спустя 2 минуты, 12 секунд (30.01.2012 - 13:28) WisesT написал(а):
ну, якорь то я уже написал, верно?
<a name="#$postrow[$i]["nomer"]"></a><form action="" method="post" name="edit_form">

вот только не знаю, нужно ли #

а вот как привязать возврат на якорь....

Спустя 5 минут, 56 секунд (30.01.2012 - 13:34) UnWind написал(а):
WisesT
Правильно)
А теперь читай про ссылки и про якоря в ссылках. В форме ссылка неправильная.

Спустя 51 секунда (30.01.2012 - 13:35) redreem написал(а):
# в имени якоря не нужно. # нужен в action только, чтобы сказать ссылке что это якорь.
ты походу половину символов, которые тебе пишут считаешь не важными.
в программировании +-1 символ имеет весомое значение.

в моем примере все же предельно просто. тебе нужно было просто добавить в генерацию своих форм эти плюшки и все.

Спустя 16 минут, 29 секунд (30.01.2012 - 13:52) WisesT написал(а):
<a name="$postrow[$i]["nomer"]"></a>
<form
action="#$postrow[$i]["nomer"]" method="post" name="edit_form">


О.о ?

Спустя 3 минуты, 17 секунд (30.01.2012 - 13:55) WisesT написал(а):
Вроде как работает. Перекидывает после кнопки, но н к тому заказу который редактировал, а к первому. Уже прогресс)) уже ж не на начало)

Спустя 2 минуты, 49 секунд (30.01.2012 - 13:58) redreem написал(а):
<a name="<?php echo $postrow[$i]['nomer']?>"></a>
<form action="#<?php echo $postrow[$i]['nomer']?>" method="post" name="edit_form">

ну типа так.


Спустя 1 минута, 24 секунды (30.01.2012 - 13:59) WisesT написал(а):
Цитата (redreem @ 30.01.2012 - 10:35)
# в имени якоря не нужно. # нужен в action только, чтобы сказать ссылке что это якорь.
ты походу половину символов, которые тебе пишут считаешь не важными.
в программировании +-1 символ имеет весомое значение.

в моем примере все же предельно просто. тебе нужно было просто добавить в генерацию своих форм эти плюшки и все.


Спасибо, за пример, но я нем запутыаюсь.

Спустя 2 минуты, 6 секунд (30.01.2012 - 14:01) WisesT написал(а):
Аааа! вот оно что)
я был не далек)

Спасибо.
Быстрый ответ:

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