Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, РусланМаксимов, Вы писали:
РМ>>Спасибо DSD за помощь!! DSD>Да не за что. С тя пять баксов... с первой пенсии
РМ>>Теперь можно вопрос не по теме? РМ>>Зачем ты помогаешь таким как я, начинающим? DSD>Сам не знаю. Просто нравится помогать людям, и все... или просто я уже привык к этому?... хз...
Мне уже стыдно просить о помощи у тебя, DSD. Но я попытаюсь...
Есть список фамилий в текстовом файле, каждая фамилия в новой строке.
Фамилии выводятся на страничку в форму, перед каждой из них стоит флажок checkbox.
После списка находится кнопка "Удалить". Нужно, чтобы выбранные фамилии checkbox'ом
удалялись из этого файла нажатием той самой кнопки "Удалить". Это возможно осуществить
в PHP? Если да, то как?
Спасибо!!!!!!!!!!!!
Re[12]: Как вызвыть функцию в PHP нажатием на ссылку?
РМ>Есть список фамилий в текстовом файле, каждая фамилия в новой строке. РМ>Фамилии выводятся на страничку в форму, перед каждой из них стоит флажок checkbox. РМ>После списка находится кнопка "Удалить". Нужно, чтобы выбранные фамилии checkbox'ом РМ>удалялись из этого файла нажатием той самой кнопки "Удалить". Это возможно осуществить РМ>в PHP? Если да, то как?
За идентификатор записей возьмем порядковый номер строки в файле.
Общая схема работы такова:
Загружаем данные в массив строк — функция LoadData();
Выполняем операции над данными(добавление/удаление) — функции DelData() и AddData();
Сохраняем данные, если необходимо(если были изменения) — функция SaveData();
отображаем данные — функция Display();
Функция LoadData() — загружает данные из рабочего файла в массив.
Функция DelData() — создает новый массив из старого, в который включаются строки, для индексов которых в параметрах скрипта не найдено отмеченных чекбоксов. Возвращает TRUE, если данные были изменены(удалены) в результате работы, и FALSE — если изменений не было.
Функция AddData() — добавляет новую строку в коней массива данных, если таковая была передана в параметре new_item. Возвращает TRUE, если данные были изменены(добавлены) в результате работы, и FALSE — если изменений не было.
Функция SaveData() — сохраняет данные обратно в рабочий файл. Вызывается, если данные были изменены(если AddData() либо DelData() вернули TRUE).
Функция Display() — отображает таблицу с данными и чекбоксы с формой удаления. Так же отображает форму добавления новой записи.
Ссылка Reset в конце страницы — (параметр filltestdata) восстанавливает данные из резервного файла к первоначальному виду
--
DSD
Re[13]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Есть список фамилий в текстовом файле, каждая фамилия в новой строке. РМ>Фамилии выводятся на страничку в форму, перед каждой из них стоит флажок checkbox. РМ>После списка находится кнопка "Удалить". Нужно, чтобы выбранные фамилии checkbox'ом РМ>удалялись из этого файла нажатием той самой кнопки "Удалить". Это возможно осуществить РМ>в PHP? Если да, то как?
РМ>Спасибо!!!!!!!!!!!!
Если тебе нужна прога от и до — то тогда это наглось уже...
Если тебе что-то конкретно не ясно, то ты конкретно и спрашивай....
В чем проблемма? Прочитать файл? записать в него данные? или проблемма в том, чтобы построить форму?
Или проблемма в том, что книги по пхп нету? Книга здесь
Вот так, например, можно поступить с файлом. Если не знаешь как форму строить — ну тогда извини уж...
<?php
// если пришел пустой массив (ни одна фамилия не выбрана) - завершаем работу программыif( !isset( $_POST["names"]) || count( $_POST["names"]) == 0) exit;
// читаем файл в массив строк:
$names = file( "path_to_file_with_names");
// открываем файл на запись:
$fp = fopen( "path_to_file_with_names", "w");
// дальше проходим по массиву строк в файле и если в POST-данных такой фамилии нет (не выбрана в форме) - записываем
// в файл ее, иначе просто игнорим (предполагается, что данные в посте пришли как массив names):for( $i = 0; $i < count( $names); $i++) {
if( !in_array( $names[$i], $_POST["names"])) {
fwrite( $fp, $names[$i] . "\n");
}
}
fclose( $fp);
?>
Да, чуть не забыл... такая работа с файлом является незащищенной для многопользовательской среды.
Поэтому я немного доделал исходники, чтоб при удалении проверялись не только номера строк, но и сами строки.
--
DSD
Re[15]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, ЖуК, Вы писали:
ЖуК>Если тебе нужна прога от и до — то тогда это наглось уже... ЖуК>Если тебе что-то конкретно не ясно, то ты конкретно и спрашивай....
ЖуК>В чем проблемма? Прочитать файл? записать в него данные? или проблемма в том, чтобы построить форму?
ЖуК>Или проблемма в том, что книги по пхп нету? Книга здесь
ЖуК>Вот так, например, можно поступить с файлом. Если не знаешь как форму строить — ну тогда извини уж...
Действительно, проблема в литературе. В магазинах по PHP ничего нет. Я даже в Краснодар ездил в поисках книг, и во Владикавказ... Очень обидно, что не привозят. Единственная надежда на интернет-магазины. Но и то, кроме Котерова, на складах ничего нет, хотя на витринах — всего навалом! Кстати, о книге Д. Котерова, которую заказал в инет-магазине. На мой взгляд, это только переведенные на русский краткие описания функций PHP. Ну, об установке Apache. Никаких приёмов, которые можно использовать на практике, примеров практически нет. Моё мнение, лучшие книги по программированию — зарубежных авторов. Наши — ленивые, не умеют излагать, объяснять как следует. Не знаю, в чем проблема. Лучше купить одну переведенную книгу, чем две наши. Толку будет больше. Так что — позор нашей литературе.
Электронные "учебники"... По ним вряд ли чему-нить научишься. Это больше справочники, чем учебники. Возможно, для продвинутых и этого будет достаточно, но ведь не все же такие, разве не так?
Re[15]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Электронные "учебники"... По ним вряд ли чему-нить научишься. Это больше справочники, чем учебники. Возможно, для продвинутых и этого будет достаточно, но ведь не все же такие, разве не так?
Все верно. но! для использования PHP кроме справочника в принципе ничего не нужно.
Другой вопрос в том, насколько человек вообще знает принципы программирования...
PHP в большинстве своем похож на Си. Как базовым синтаксисом, так и множеством схожих функций.
Еще несколько мелочей есть от Перла: рег.выражения, циклы foreach, hash-массивы и т.п. Малость отличается от перловых, но в целом похоже.
--
DSD
Re[15]: Как вызвыть функцию в PHP нажатием на ссылку?
DSD>Да, чуть не забыл... такая работа с файлом является незащищенной для многопользовательской среды. DSD>Поэтому я немного доделал исходники, чтоб при удалении проверялись не только номера строк, но и сами строки.
Что значит "работа с файлом является незащищенной для многопользовательской среды"?
Re[16]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Здравствуйте, DSD, Вы писали:
DSD>>Да, чуть не забыл... такая работа с файлом является незащищенной для многопользовательской среды. DSD>>Поэтому я немного доделал исходники, чтоб при удалении проверялись не только номера строк, но и сами строки.
РМ>Что значит "работа с файлом является незащищенной для многопользовательской среды"?
Это значит, что если к файлу обратяться одновременно несколько пользователей — результаты удивят всех...
Здравствуйте, ЖуК, Вы писали:
РМ>>Что значит "работа с файлом является незащищенной для многопользовательской среды"?
ЖуК>Это значит, что если к файлу обратяться одновременно несколько пользователей — результаты удивят всех...
В целом да, но имелось ввиду — для многозадачной среды. Сорри за небольшую опечатку, хотя она в принципе тоже верна.