Как я могу иногда перенаправить перед публикацией формы? - PullRequest
0 голосов
/ 02 августа 2011

У меня есть форма, которая находится на боковой панели и отображается на нескольких страницах.Если пользователь находится на page-a.php и отправляет форму, он использует ajax для возврата некоторых данных в div на этой странице.

Однако, если пользователь находится на page-b.php и отправляет одну и ту же форму (опять же, она включена на обеих страницах), я хочу перенаправить форму на page-a.php, а затем использовать ту же запись ajaxзагрузить данные.Как я могу добиться этого?

Правка для ясности:

page-a.php - когда это отправляет эту форму (включенную из отдельного файла), ajax-вызов делается для page-c.php, который загружает данные в div:

<form method="post" action="page-c.php">
    <input ....
               />
</form>
<div></div>

page-b.php имеет точно такую ​​же форму (включенную из отдельного файла), но разное содержимое, поэтому для загрузки данных в divнам нужно перенаправить на страницу-a.php:

<form method="post" action="page-c.php">
   <input .....
          />
</form>

Так как я могу заставить вызов формы работать так же (ajax, который уже реализован), но сделать так, чтобы он перенаправил меня на страницу aphp первый?

Ответы [ 4 ]

0 голосов
/ 03 августа 2011

Решено с помощью этого:

<form name="formA" id="formA"  method="post" 
            <?php if(curPageName() == 'page-a.php'){
                echo 'class="ajax" action="page-c.php"';
                }
                else {
                echo 'action="page-a.php"';
                }
            ?>
        >

с этим на page-a.php для автоматической отправки формы при загрузке страницы, которая перенаправляет загрузку на ajax submit

<script type="text/javascript">$(document).ready(function() {document.formA.submitbutton.click(); });</script>
0 голосов
/ 02 августа 2011

Разве вы не можете просто извлечь этот JavaScript из page-a.php в отдельный файл .js, включенный в page-a.php и page-b.php?Затем, когда форма отправлена, она просто использует ту же функцию.Обновите эту функцию, чтобы она принимала в качестве параметра страницу, выполняющую вызов, чтобы вы не обновляли div на page-b.php.

0 голосов
/ 02 августа 2011

Установите тэг формы следующим образом:

<form action="page-a.php" method="post">
    <input name="formfield" id="formfield" />
</form>

на page-b.php Вы можете использовать php для извлечения опубликованных данных из формы.

<?php echo $_POST['formfield'];?>

Вам не нужноиспользовать javascript / ajax для всего этого.

0 голосов
/ 02 августа 2011

Как насчет того, чтобы пост-формы page-b.php отправлялся в page-a.php, а затем на основе содержимого переменной окружения HTTP_REFERRER cgi, включал в себя некоторый javascript для выполнения процедуры публикации ajax при загрузке страницы?

Есливы делаете реальное перенаправление HTTP, вы потеряете все данные формы, которые были заполнены на page-b.php.Если бы они находились на одном и том же сервере, я полагаю, вы могли бы сохранить данные локально и связать их с переменной сеанса до ответа Http Redirect.Page-a.php будет проверять локальные данные формы при загрузке.

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