Как мне связать файлы в PHP? - PullRequest
1 голос
/ 26 октября 2008

У меня есть два файла PHP, которые мне нужно связать. Как я могу связать файлы вместе с помощью PHP? Эффект, который я хочу получить, состоит в том, что пользователь нажимает кнопку, некоторая информация обрабатывается на странице, а затем результат отображается на другой странице, в зависимости от кнопки, на которую нажал пользователь. Спасибо

Ответы [ 3 ]

8 голосов
/ 26 октября 2008

Звучит так, как будто вам может понадобиться форма HTML:

<form method="post" action="other_file.php">
    <input name="foo" type="..."... /> ...
</form>

Тогда $_POST["foo"] будет содержать значение этого входа в other_file.php.

2 голосов
/ 26 октября 2008

Я истолковал ваш вопрос иначе, чем другие.

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

Если это так, то вот простой скелет для достижения этой цели. В этом примере page_1.php и page_2.php - это два ваших существующих PHP-файла.

Обратите внимание, что если вы делаете много этого, вы, вероятно, захотите ознакомиться с шаблоном MVC (Model-View-Controller) и / или попробовать некоторые из популярных PHP-фреймворков. Это выходит за рамки этого вопроса, но в основном обе эти вещи дадут вам хорошую основу для структурирования вашего кода, чтобы все оставалось управляемым и не превращалось в беспорядок.

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    switch ($_POST['command']) {
    case 'show_file_1':
        include 'file_1.php';
        break;
    case 'show_file_2':
        include 'file_2.php';
        break;
    }   
    exit;
}   

?>
<form method="POST">
    <button name="command" value="show_file_1">Show file 1</button>
    <button name="command" value="show_file_2">Show file 2</button>
</form>

Примечание: я включил только соответствующие HTML и PHP, чтобы проиллюстрировать это. Очевидно, что вы бы добавили теги <html>, <head> и <body> и, вероятно, немного перемешали бы и модулировали PHP, в зависимости от того, что вы собираетесь добавить.

ОБНОВЛЕНИЕ: Я должен также добавить, что если какой-либо из ваших существующих файлов PHP содержит формы, которые отправляют сами по себе, вы можете изменить include на перенаправление. То есть:

include 'file_1.php';

станет:

header('Location: http://mysite.com/file_1.php');

Трудно понять, что порекомендовать, не зная природу ваших существующих файлов.

РЕДАКТИРОВАТЬ: Я отвечаю на второй пост ОП таким образом, потому что у меня недостаточно репутации, чтобы комментировать. На каком номере строки вы получили неожиданную ошибку ;? Если бы мне пришлось угадывать, я бы сказал, проверьте, что вы используете : (двоеточие), а не ; (точка с запятой) в конце строк case 'show_file_1' и case 'show_file_2'.

0 голосов
/ 26 октября 2008

В самой основной настройке PHP вы можете использовать два независимых файла: один генерирует форму, второй обрабатывает ответ. Вы также можете обработать это с помощью одного файла, который проверяет, была ли форма опубликована.

 if (isset($_POST['foo'])) { ... }

или

 if ($_SERVER['REQUEST_METHOD'] == 'POST') { ... }

Как только вы выйдете за пределы этого уровня, должны появиться более чистые способы создания сценариев, чтобы вы могли отделить свою логику и свои интерфейсы, но я догадываюсь из вопроса, что вы еще не там.

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