Редактирование строки. Суть внутри.

skeletor

Новичок
Редактирование строки. Суть внутри.

Не знал как правильно назвать тему, опишу суть.
При нажатии на кнопку я получаю результаты в виде пар: ИМЯ : e-mail. Каждая пара в отдельной строке, пока выводится, как таблица. Хотелось, что бы при нажатии на строку, она открывалась в отдельном окне и можно было отредактировать эти поля.
Заранее спасибо.
 

skeletor

Новичок
Похоже, то, что нужно. Спасибо, попробую.

-~{}~ 06.07.10 14:32:

Спасибо всем, кто помог решить.
Подсказали на одном форуме вот такую конструкцию

Код:
<?php
 $list[0]['name'] = 'Мистер Зеро';
 $list[0]['mail'] = '[email protected]';
 
 $list[1]['name'] = 'Вася';
 $list[1]['mail'] = '[email protected]';
 
 $list[2]['name'] = 'Петя';
 $list[2]['mail'] = '[email protected]';
 
 $list[3]['name'] = 'Михаил Петрович';
 $list[3]['mail'] = '[email protected]';
 
 
 if (isset($_GET['edit'])) {
   //Т.к. юзеры сплош все хацкеры, мы им не верим, и режем для верности пять символов от начала строки, ибо туда влезет вполне себе большое число.
   // Так же сразу приводим тип, раз мы знаем точно, что там должно придти - число.
   $_GET['edit'] = (int)trim(substr(trim($_GET['edit']),0,5));
 
   //рисуем форму, ибо инпуты живут в формах.
   //в форму надо засунуть инпут с id записи, которую правим. лучше бы его спрятать.
 
   echo "Редактируем запись {$_GET['edit']}
 <form id='frm_edit' name='frm_edit' method='POST' action='{$_SERVER['PHP_SELF']}'>
   <input type='hidden' name='id' value='{$_GET['edit']}'>
   Имя: <input name='name' value='{$list[$_GET['edit']]['name']}'><br>
   Почта: <input name='mail' value='{$list[$_GET['edit']]['mail']}'><br>
   <input type='submit'>
 </form>
     ";
 }
 
 //т.к. форма отправляет данные POST'ом, мы их там и будем искать.
 
 if (isset($_POST['id']) AND isset($_POST['name']) AND isset($_POST['mail'])) {
   //сохраняем присланные данные.
   $_POST['id'] = (int)trim(substr(trim($_POST['id']),0,5));
   $_POST['name'] = trim(substr(trim($_POST['name']),0,255));
   $_POST['mail'] = trim(substr(trim($_POST['mail']),0,255));
   //если полей больше - есть другой способ, который позволяет пройтись по ним и пообрезать в цикле.
 
   //кагбэ типа сохраняем...
   $list[ $_POST['id']]['name']=$_POST['name'];
   $list[ $_POST['id']]['mail']=$_POST['mail'];
 }
 
 
 //рисуем лист
 for ($i = 0; $i < count($list); $i++) {
   echo "<div class='entry'> {$list[$i]['name']}, {$list[$i]['mail']} <a href='?edit=$i'>Редактировать</a>";
 }
 
 
 
 ?>
Переделал немного под себя. Тему можно закрывать.
 

crocodile2u

http://vbolshov.org.ru
> Тему можно закрывать.

Тему можно переносить в "Юмор". Тема про индусский код плачет по этому шедевру.

"Т.к. юзеры сплош все хацкеры, мы им не верим, и режем для верности пять символов от начала строки, ибо туда влезет вполне себе большое число." - это читается не хуже Бхагавад-Гиты.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Код:
$_GET['edit'] = (int)trim(substr(trim($_GET['edit']),0,5));
Принимаю как дзен. Пошел зажгу палочки благовоний)
 

tz-lom

Продвинутый новичок
Автор оригинала: weregod
не дай Бог тут встретится utf8..
ну вообще говоря оно просто не переживёт приведения к числу
а вообще да, 99999 это большое число,очень
 
Сверху