Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Редактирование строки. Суть внутри.


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

Автор: AXS 6.7.2010, 12:06
Вам в раздел телепатов...

Автор: MoLeX 6.7.2010, 12:08
а в чем проблема то? 

Автор: skeletor 6.7.2010, 12:13
2AXS почему туда? Могу подробнее объяснить.
2MoLeX с чего начать? Вот проблема.

Автор: skyboy 6.7.2010, 12:20
с формами работать умеешь?
ну, сформировать форму, обработать переденные данные, в базу записывать или в файл там.

Автор: AXS 6.7.2010, 14:04
Ты пишешь:
Цитата

При нажатии на кнопку я получаю...

Значит ты что то  уже сделал...  И теперь тебе надо это что то изменить чтобы получить немного другой результат...
Так? Ну вот ты и напиши, что ты уже сделал (код). Что пробовал делать, что не получется?...

А так никто тебе не поможет, так как не знают, чем тебе помочь...

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

Код
<?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>";
 }
 
 
 
 ?>


Переделал немного под себя. Ещё как вариант, можно использовать эту конструкцию (подсказали на одном форуме) http://phpfaq.ru/formtable. Тему можно закрывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)