Здравствуйте, РусланМаксимов, Вы писали:
РМ> Как вызвыть функцию в PHP нажатием на ссылку?
Нормально у тебя это не получится. Можешь попробовать через JavaScript (обрабатывая соответсвующий event), но у меня возникала всегда при этом одна проблема: РНР не признает JavaScript-функции и свой код, содержащийся в них будет исполнять незамедлительно. Единственный премлемый способ: вынести функцию в отдельный скрипт (например, в тот, куда ты переходишь по ссылке) и работать с ней уже там.
Re[2]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, Ned1, Вы писали:
N>Здравствуйте, РусланМаксимов, Вы писали:
РМ>> Как вызвыть функцию в PHP нажатием на ссылку?
N>Нормально у тебя это не получится. Можешь попробовать через JavaScript (обрабатывая соответсвующий event), но у меня возникала всегда при этом одна проблема: РНР не признает JavaScript-функции и свой код, содержащийся в них будет исполнять незамедлительно. Единственный премлемый способ: вынести функцию в отдельный скрипт (например, в тот, куда ты переходишь по ссылке) и работать с ней уже там.
О! Они нашли друг друга! Можно сразу в хумор
Ребята (оба: РусланМаксимов и Ned1), вся фишка в том, что PHP выполняется на сервере, а JavaScript — на клиенте.
То бишь схема такова:
Браузер запрашивает некий PHP-скрипт на сервере. Сервер выполняет этот скрипт(у себя), и отдает браузеру результат выполнения этого скрипта(обычно этот результат — не что иное, как сгенерированная PHP-скриптом web-страничка). А JavaScipt работает на клиенте, внутри web-браузера — то бишь на самой страничке, после(и во время) загрузки этой странички в браузер.
Возвращаясь к первому вопросу — выполнить PHP-функцию, нажав на ссылку.
Прямиком на клиенте это сделать практически невозможно.
Обычно все делают так:
Для этого надо сделать ссылку вида httр://myhоst.com/blablabla/blabla.php?function=myfunc
где после знака ? мы передаем этому скрипту параметр function со значением myfunc.
Соответственно на сервере в нужном месте должен лежать скрипт blabla.php, в котором мы принимаем параметр function и в зависимости от его значения, выполняем ту или иную PHP-функцию.
Еще раз повторю — эта функция выполнится на сервере, и обычно такое выполнение подразумевает запрос и загрузку странички с сервера(т.е. как обычный переход по ссылке на другую страничку).
To All: Если чего не поймут, обьясните им кто-нибудь подоходчивей, а то у меня от веселья чейто дар речи пропал и обьяснялка не работает
--
DSD
Re[3]: Как вызвыть функцию в PHP нажатием на ссылку?
DSD>Ребята (оба: РусланМаксимов и Ned1), вся фишка в том, что PHP выполняется на сервере, а JavaScript — на клиенте.
DSD>То бишь схема такова: DSD>Браузер запрашивает некий PHP-скрипт на сервере. Сервер выполняет этот скрипт(у себя), и отдает браузеру результат выполнения этого скрипта(обычно этот результат — не что иное, как сгенерированная PHP-скриптом web-страничка). А JavaScipt работает на клиенте, внутри web-браузера — то бишь на самой страничке, после(и во время) загрузки этой странички в браузер.
DSD>Возвращаясь к первому вопросу — выполнить PHP-функцию, нажав на ссылку.
DSD>Прямиком на клиенте это сделать практически невозможно. DSD>Обычно все делают так: DSD>Для этого надо сделать ссылку вида httр://myhоst.com/blablabla/blabla.php?function=myfunc DSD>где после знака ? мы передаем этому скрипту параметр function со значением myfunc.
DSD>Соответственно на сервере в нужном месте должен лежать скрипт blabla.php, в котором мы принимаем параметр function и в зависимости от его значения, выполняем ту или иную PHP-функцию.
DSD>Еще раз повторю — эта функция выполнится на сервере, и обычно такое выполнение подразумевает запрос и загрузку странички с сервера(т.е. как обычный переход по ссылке на другую страничку).
DSD>
To All: Если чего не поймут, обьясните им кто-нибудь подоходчивей, а то у меня от веселья чейто дар речи пропал и обьяснялка не работает
И тебе всего хорошего, человек, у которого не работает объяснялка .
Ты, тем не менее, очень здорово объясняешь букварные истины. В частности, что РНР — server-side script, а JavaScript — client-side.
Кстати, я сказал, что ч/з JavaScript не получится.
А еще ты почти слово в слово повторил то, что посоветовал я: N>Единственный премлемый способ: вынести функцию в отдельный скрипт (например, в тот, куда ты переходишь по ссылке) и работать с ней уже там.
Re[4]: Как вызвыть функцию в PHP нажатием на ссылку?
DSD>>Ребята (оба: РусланМаксимов и Ned1), вся фишка в том, что PHP выполняется на сервере, а JavaScript — на клиенте.
О различиях ЯваСкрипт и ПХП я знаю, и можно не напоминать об этом.
Мой вопрос состоит вот в чем:
Допустим, есть страничка, выдающая список определенных фамилий. После списка
стоят две-три ссылки, каждая из которых сортирует этот список (по алфавиту, и т.д. — это неважно),
Каждый вид сотрировки имеет свою функцию, и все функции находятся в одном скрипте.
Вот я и хотел узнать, как же это осуществить, только пожалуйста, не нужно говорить о различиях JavaScript и PHP. Просто подскажите начинающим PHP-лаймерам
Спасибо!
Re[5]: Как вызвыть функцию в PHP нажатием на ссылку?
DSD>>>Ребята (оба: РусланМаксимов и Ned1), вся фишка в том, что PHP выполняется на сервере, а JavaScript — на клиенте.
РМ>О различиях ЯваСкрипт и ПХП я знаю, и можно не напоминать об этом.
РМ>Мой вопрос состоит вот в чем:
РМ>Допустим, есть страничка, выдающая список определенных фамилий. После списка РМ>стоят две-три ссылки, каждая из которых сортирует этот список (по алфавиту, и т.д. — это неважно), РМ>Каждый вид сотрировки имеет свою функцию, и все функции находятся в одном скрипте. РМ>Вот я и хотел узнать, как же это осуществить, только пожалуйста, не нужно говорить о различиях JavaScript и PHP. Просто подскажите начинающим PHP-лаймерам
Передай GET'ом или POST'ом переменную для сортировки и ветвись наздоровье, взависимости от значения переменной...
... << RSDN@Home 1.1 beta 2 >>
Re[5]: Как вызвыть функцию в PHP нажатием на ссылку?
РМ>Допустим, есть страничка, выдающая список определенных фамилий. После списка РМ>стоят две-три ссылки, каждая из которых сортирует этот список (по алфавиту, и т.д. — это неважно), РМ>Каждый вид сотрировки имеет свою функцию, и все функции находятся в одном скрипте. РМ>Вот я и хотел узнать, как же это осуществить, только пожалуйста, не нужно говорить о различиях JavaScript и PHP. Просто подскажите начинающим PHP-лаймерам
Спасибо, конечно, за исходник. Но у меня теперь другая проблема. Табличные данные берутся из текстового файла,
где, допустим, фамилия, имя и отчество отделены Tab'ом. Как вставить в таблицу эти данные, вместо тех, которые уже в ней находятся?
Спасибо, Андрей!!!
Re[7]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Здравствуйте, DSD, Вы писали:
DSD>>Скрипт(для сортировки кликать по заголовкам колонок таблицы): http://911.ru/to_rsdn/sort_exam.php DSD>>Исходник: http://911.ru/to_rsdn/sort_exam.php.html
РМ>Спасибо, конечно, за исходник. Но у меня теперь другая проблема. Табличные данные берутся из текстового файла, РМ>где, допустим, фамилия, имя и отчество отделены Tab'ом. Как вставить в таблицу эти данные, вместо тех, которые уже в ней находятся? РМ>Спасибо, Андрей!!!
$c_array = split("\n", $contents);
for ($i = 0; $i < count($c_array); $i++)
{
$ct_array[] = split("\t", $c_array[$i]);
}
?>
В итоге ты имеешь $ct_array со своими данными, которые потом в всталяешь в таблицу.
... << RSDN@Home 1.1 beta 2 >>
Re[7]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Спасибо, конечно, за исходник. Но у меня теперь другая проблема. Табличные данные берутся из текстового файла, РМ>где, допустим, фамилия, имя и отчество отделены Tab'ом. Как вставить в таблицу эти данные, вместо тех, которые уже в ней находятся?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>DSD, огромное спасибо за помощь! Скрипт работает отлично! Но только со строками, а числа сортирует некорректно
Все дело в функции SortByX:
function SortByX($a, $b) {
global $sort_type;
returnstrcasecmp($a[$sort_type], $b[$sort_type]);
}
в ней для непосредственно сравнения сортируемых элементов используется функция strcasecmp.
поэтому числа перед сравнением переводятся в строки и сортируются в итоге по правилам сортировки строк.
Поэтому для сортировки числовых данных ее нужно просто соответственно переписать:
function SortByX($a, $b) {
global $sort_type;
if ($a[$sort_type]>$b[$sort_type]) return 1;
if ($a[$sort_type]<$b[$sort_type]) return -1;
return 0;
}
можно и покороче:
function SortByX($a, $b) {
global $sort_type;
return ($a[$sort_type]>$b[$sort_type])?1:($a[$sort_type]<$b[$sort_type])?-1:0;
}
--
DSD
Re[10]: Как вызвыть функцию в PHP нажатием на ссылку?
Спасибо DSD за помощь!!
Теперь можно вопрос не по теме?
Зачем ты помогаешь таким как я, начинающим?
Ты хорошо объясняешь, за это тебе громадное спасибо!
Не подумывал написать книгу о программировании на PHP?
--
С уважением,
Руслан
Re[11]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Здравствуйте, DSD, Вы писали:
DSD>>Все дело в функции SortByX:
РМ>Спасибо DSD за помощь!! РМ>Теперь можно вопрос не по теме? РМ>Зачем ты помогаешь таким как я, начинающим? РМ>Ты хорошо объясняешь, за это тебе громадное спасибо! РМ>Не подумывал написать книгу о программировании на PHP?
РМ>-- РМ>С уважением, РМ>Руслан
Здравствуйте, ЖуК, Вы писали:
ЖуК> Не... DSD PHP не любит...
я бы сказал ненавидит
P.S.
To Жук: Помнится ты как-то на своем сайте пример заимствованного календаря выкладывал, потом благополучно убрал. Не можешь случаем мне на ящик кинуть?
RSDN@Home 1.1 beta 2
Re[13]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, uzzy, Вы писали:
U>Здравствуйте, ЖуК, Вы писали:
ЖуК>> Не... DSD PHP не любит... U>я бы сказал ненавидит
U>P.S. U>To Жук: Помнится ты как-то на своем сайте пример заимствованного календаря выкладывал, потом благополучно убрал. Не можешь случаем мне на ящик кинуть?
Здравствуйте, ЖуК, Вы писали:
ЖуК>Здравствуйте, uzzy, Вы писали:
U>>Здравствуйте, ЖуК, Вы писали:
ЖуК>>> Не... DSD PHP не любит... U>>я бы сказал ненавидит
U>>P.S. U>>To Жук: Помнится ты как-то на своем сайте пример заимствованного календаря выкладывал, потом благополучно убрал. Не можешь случаем мне на ящик кинуть?
ЖуК>А сорри, я его просто переместил иль че-то там еще сделал... вообщем вот он ЖуК>http://scripts.kiev.ua/examp/calendar/ http://scripts.kiev.ua/src/calendar/calendar.js — сырец
Здравствуйте, РусланМаксимов, Вы писали:
РМ>Спасибо DSD за помощь!!
Да не за что. С тя пять баксов... с первой пенсии
РМ>Теперь можно вопрос не по теме? РМ>Зачем ты помогаешь таким как я, начинающим?
Сам не знаю. Просто нравится помогать людям, и все... или просто я уже привык к этому?... хз...
Мне по жизни по своим проектам приходится постоянно быть лидером, идти на пару шагов впереди коллег по проектам.
С одной стороны, можно гнуть пальцы, типа во какой я крутой. Но это проходит быстро.
Потому что есть другая сторона, а именно: если мои коллеги попадают в затруднительную ситуацию, им есть у кого спросить совета или помощи... а мне не у кого... я и так впереди...
И приходится долбить проблему самому, иногда даже неделями, а то и месяцами. А потом кто-то у меня спросит, и получит ответ за 5 минут.
Грустно. Не за то, что я им на халяву помогу — этого мне не жалко, а грустно за то, что мне в большинстве случаев помочь некому...
РМ>Ты хорошо объясняешь, за это тебе громадное спасибо!
Я сам думаю, что я объясняю довольно хреново. Стараюсь кратко и лаконично — да, но не шибко качественно.
РМ>Не подумывал написать книгу о программировании на PHP?
Лично я считаю, что я не знаю PHP. Я никогда его специально не учил. Если приходится писать на нем — пишу с ходу, вооружившись одним лишь справочником функций с оф.сайта.
Это язык, архитектура которого мне кристально ясна, так как похожа на много других языков, но с заточкой под web. Наверное поэтому я в нем так легко ориентируюсь, и пллаваю, как рыба в воде
А писать книги, да еще по PHP... как тут верно заметили, я его не люблю Сам толком не знаю, за что... просто не люблю и все тут
Может быть за то, что он не такой гибкий, как Перл, и не такой быстрый, как Си. Наверно за это
Да и не писатель я, в общем-то...
--
DSD
Re[12]: Как вызвыть функцию в PHP нажатием на ссылку?
Здравствуйте, 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>>Поэтому я немного доделал исходники, чтоб при удалении проверялись не только номера строк, но и сами строки.
РМ>Что значит "работа с файлом является незащищенной для многопользовательской среды"?
Это значит, что если к файлу обратяться одновременно несколько пользователей — результаты удивят всех...
Здравствуйте, ЖуК, Вы писали:
РМ>>Что значит "работа с файлом является незащищенной для многопользовательской среды"?
ЖуК>Это значит, что если к файлу обратяться одновременно несколько пользователей — результаты удивят всех...
В целом да, но имелось ввиду — для многозадачной среды. Сорри за небольшую опечатку, хотя она в принципе тоже верна.