2016-08-16 3 views
1

У меня есть эта форма, которая отлично работает. Однако я хочу скрыть форму, когда она будет отправлена. В принципе, я хотел бы скрыть весь div, начиная с этого: <div class="HideSuccess">, когда он успешно отправлен или когда форма отправлена ​​с ошибкой/без ошибок.Скрыть DIV при успешном подаче

Как это сделать?

<?php 
if (isset($_POST['submit'])) { 
    $Fname = $_POST['fname']; 
    $Email = $_POST['email']; 
    $fp = fopen("data.txt","a"); 
    if (!$fp) { 
     echo 'Error!'; 
     exit; 
    } 
    if (@fwrite($fp, $Fname.'|'.$Email."\n")) { 
     echo '<p class="thanks">Success<p>'; 
    } else { 
     echo '<p>Error!</p>'; 
    } 
    fclose($fp); 
} 
?> 
<div class="HideSuccess"> 
    <form name="input" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"> 
     <input type="text" name="fname" id="fname" placeholder="Full Name" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Full Name'" required /> 
     <input type="email" name="email" id="email" placeholder="Your Email" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your Email'" required /> 
     <input class="button" type="submit" name="submit" value="Submit" /></p> 
    </form> 
</div> 

ответ

2

Если вы отправляете форму на той же странице, это может работать для тебя. Это будет скрыть DIV, если есть POST-данные на странице загрузки

<?php 
if (isset($_POST['submit'])): 
    $Fname = $_POST['fname']; 
    $Email = $_POST['email']; 
    $fp = fopen("data.txt","a"); 
    if(!$fp) { 
     echo 'Error!'; 
     exit; 
    } 
    if(@fwrite($fp, $Fname.'|'.$Email."\n")){ 
     echo '<p class="thanks">Success<p>'; 
    }else{ 
     echo '<p>Error!</p>'; 
    } 
    fclose($fp); 
else: ?> 
<div class="HideSuccess"> 
    <form name="input" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']?>"> 
     <input type="text" name="fname" id="fname" placeholder="Full Name" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Full Name'" required /> 
     <input type="email" name="email" id="email" placeholder="Your Email" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your Email'" required /> 
     <input class="button" type="submit" name="submit" value="Submit" /></p> 
    </form> 
</div> 
<?php endif; ?> 

EDIT: Добавление полного кода в соответствии с просьбой

+0

Я не уверен, как вставить PHP-код с кодом. Не могли бы вы его заполнить? Код, заданный в вопросе, - это полный код, и он находится на той же странице. –

+0

@ElaineByene, вот вы. –

+1

Thank Ты так много :) –

0

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

Но вы должны понять причину после реальной формы отправить свою страницу повторно. И для этого случая вы можете использовать ajax.

Например:

Add идентификационным для формы:

<form id="my-form" ... 

И написать что-то вроде:

var 
    myForm  = $('#my-form'), 
    myFormSuccess = myForm.closest('.HideSuccess'); 

myForm.on('submit', function() { 
    $.post(myForm.attr('action'), myForm.serialize(), function() { 
     myFormSuccess.slideUp(500); 
    }); 
    return false; 
}); 
+0

форме перестают работать после того, как я сделал это, и я использую последнюю версию JQuery: ( –