2012-09-12 2 views
0

У меня закончились идеи для этого задания для класса. Мне нужно было создать две формы PHP, используя PHP_SELF, и я предполагаю использовать javascript или jquery для переключения между формами. Я попытался с помощьюjquery toggle между формами

<a href="#" onclick="document.getElementById('form1').style.display = 'block'; document.getElementById('form2').style.display = 'hidden';">Form 1</a> 
<a href="#" onclick="document.getElementById('form1').style.display = 'hidden'; document.getElementById('form2').style.display = 'block';">Form 2</a> 

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

ответ

0

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

<?php 
    ... 
    if (isset($_POST['formId'])) 
    { 
     $show = 'form1' == $_POST['formId'] ? 'form1' : 'form2'; 
     $hide = 'form1' == $_POST['formId'] ? 'form2' : 'form1'; 
     // This PHP must be inside the Javascript section of the page, at end. 
     print <<<SETVISIBILITY 

\$('#$show').style.display = 'block'; // Should be unnecessary (?) 
\$('#$hide').style.display = 'hidden'; 

SETVISIBILITY; 
    } 
?> 

Или вы можете сделать ВВЕСТИ и результат отображает все в jQuery, так что вам не нужно перезагружать страницу, теряя видимость вашей формы.

+0

Мне нравится форма ID идея, я попробую это. Следующее присваивание использует все JQuery, однако для этого я должен использовать PHP для форм и JQuery для их переключения. Не спрашивайте, почему, потому что я задаю один и тот же вопрос! –

+0

Ну, тогда просто добавьте 'if (isset ($ _ POST ['formID'])) ... ... и когда вы перезагружаете страницу после POST, вы добавляете (из PHP) команду jQuery, чтобы правильно установить видимость. – LSerni

+0

Каков был бы пример этого? Обе мои формы имеют скрытые поля с именем formID и id идентификатора formID с разными значениями. В нижней части моей страницы я помещаю if (isset ($ _ POST ['formID'])); как я могу получить jquery, чтобы узнать, какой идентификатор используется? –

1

Вам нужно использовать что-то вроде этого

if($_POST){ 
//display success message here 
}else{ 
//display form here 
} 
Смежные вопросы