нужна кнопка, которая вызывает функцию PHP - PullRequest
0 голосов
/ 16 июня 2010

Мне нужна кнопка, которая вызывает функцию php для восстановления отображаемых данных из БД.Как, черт возьми, я делаю это?Я только что узнал, что, поскольку php на стороне сервера, это отстой.Так что помощь, пожалуйста?

Ответы [ 5 ]

3 голосов
/ 16 июня 2010

Вы не можете напрямую вызвать функцию PHP нажатием кнопки по той причине, которую вы указали сами. Чтобы выполнить код PHP, вам нужно сделать новый запрос к серверу. Запрос может быть сделан к другому сценарию или к тому же, который создал вашу страницу, вызвав ее снова с некоторым параметром для управления ее поведением.

В качестве альтернативы, вы можете вызвать скрипт PHP через Javascript (AJAX), чтобы вы могли обрабатывать его вывод и обновлять страницу без полной перезагрузки.

Второй вариант более аккуратный, но более сложный, первый может показаться менее приятным для глаз, но работает независимо от того, включен ли Javascript в браузере пользователя.

2 голосов
/ 16 июня 2010

Да, потому что PHP на стороне сервера, у вас есть два варианта. Одним из них является создание кнопки, которая вызывает скрипт PHP и отображает совершенно новую страницу. Другой способ - использовать AJAX (асинхронный javascript и XML) на странице, хороший способ сделать это - на jquery.com, а также перерисовать только таблицу с данными.

2 голосов
/ 16 июня 2010

Вероятно, он должен находиться внутри поля формы, примерно так:

<form action="YOUR_PHP_SCRIPT.php">
<input type="submit" />
</form>

При нажатии кнопки отправки запускается действие для формы.

Возможно, с этого момента вам придется принять во внимание ряд других вещей, но это только начало.

0 голосов
/ 16 июня 2010

Это работа для ajax, как уже упоминалось. Если я могу уточнить, если вы только начинаете, я НАСТОЯТЕЛЬНО рекомендую использовать библиотеку javascript, чтобы сделать вашу жизнь проще. С прототипом вот как может выглядеть ваша кнопка:

<input type="button" id="button_foo">Button</input>

Вот как может выглядеть ваш javascript:

$('button_foo').observe('mousedown',function(e){
    new Ajax.Request('handler.php',{
        method:'post',
        onSuccess:function(t){
            $('table_bar').update(t.responseText);
            }
    });
});

Поначалу это может показаться немного сложным, но я думаю, что базовый js имеет довольно управляемую кривую обучения при использовании библиотеки. Приведенный выше код будет принимать любые выходные данные handler.php и заменяет содержимое элемента с идентификатором «table_bar» и возвращаемым html.

Если вы решите использовать прототип, документы действительно полезны и просты для понимания, и есть прагматическая пресса с отличной книгой по этому вопросу, которая поможет вам очень быстро понять ее.

Надеюсь, это поможет!

0 голосов
/ 16 июня 2010

Как сказал Yacoby, вам нужно использовать AJAX для вызова сервера или что-то вроде этого: http://www.ajaxdaddy.com/demo-sorted-table.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...