2013-09-26 6 views
3

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

Мой код: только форма отображения, когда мы не имеем значения формы, представленные:

<div id="domain-name-check"> 
    <h2>Is uw domeinnaam nog vrij?</h2> 
    <form method='post' class="clearfix"> 
     <input type=text name=domain> 
      <select name="suffix"> 
       <option value=".nl">.nl</option> 
       <option value=".be">.be</option> 
       <option value=".com">.com</option> 
       <option value=".net">.net</option> 
       <option value=".org">.org</option> 
       <option value=".biz">.biz</option> 
       <option value=".info">.info</option> 
       <option value=".mobi">.mobi</option> 
       <option value=".ws">.ws</option> 
       <option value=".cc">.cc</option> 
      </select> 
      <input type=submit name=proses value=Check> 
    </form> 
    <?php 
    if(isset($_POST['proses'])){ 
     $domain_name = "$_POST[domain]"."$_POST[suffix]"; 
     $arrHost = @gethostbynamel("$domain_name"); 
     $date = date('y-m-d'); 

     if(empty($arrHost)){ 
      echo "<h2>$domain_name is beschikbaar</h2> <a href='/offerte-aanvragen/".$domain_name."/'>Vraag een offerte aan</a>"; 
      $availability = "yes"; 
     }else{ 
      echo "<h2>$domain_name is helaas bezet</h2> <a href='/offerte-aanvragen/".$domain_name."/verhuizen/'>Verhuis uw domein</a>"; 
      $availability = "no"; 
     } 

     mysql_query("INSERT domainnames SET dns='".$domain_name."', available='".$availability."', timestamp='".$date."'")or die(mysql_error()); 

    } 
    ?> 
</div> 
+0

Рассмотрите возможность их переноса в двойные кавычки '' as in 'and' < input type = "text" name = "domain"> ' –

+0

Также учитывайте разные страницы, а не отдельные страницы с условным содержанием. Google для движков шаблонов, таких как «Smarty» –

+0

Вам не нужно использовать огромную форму в качестве примера для решения вашей проблемы. Пожалуйста, - и это относится ко всем - сохраните свой примерный код до минимума. Таким образом, будет легче: 1) прочитать код и 2) ответить на него, особенно. с исправлением кода. Просто как тот. – Apostolos

ответ

8

Исправленный код. Таким образом, написать свой HTML код в else тэгом следующим образом:

<div id="domain-name-check"> 

    <?php 
    if(isset($_POST['proses'])){ 
     $domain_name = "$_POST[domain]"."$_POST[suffix]"; 
     $arrHost = @gethostbynamel("$domain_name"); 
     $date = date('y-m-d'); 

     if(empty($arrHost)){ 
      echo "<h2>$domain_name is beschikbaar</h2> <a href='/offerte-aanvragen/".$domain_name."/'>Vraag een offerte aan</a>"; 
      $availability = "yes"; 
     }else{ 
      echo "<h2>$domain_name is helaas bezet</h2> <a href='/offerte-aanvragen/".$domain_name."/verhuizen/'>Verhuis uw domein</a>"; 
      $availability = "no"; 
     } 

     mysql_query("INSERT domainnames SET dns='".$domain_name."', available='".$availability."', timestamp='".$date."'")or die(mysql_error()); 

    } 
     else { 
     ?> 
     <h2>Is uw domeinnaam nog vrij?</h2> 
    <form method='post' class="clearfix"> 
     <input type=text name=domain> 
      <select name="suffix"> 
       <option value=".nl">.nl</option> 
       <option value=".be">.be</option> 
       <option value=".com">.com</option> 
       <option value=".net">.net</option> 
       <option value=".org">.org</option> 
       <option value=".biz">.biz</option> 
       <option value=".info">.info</option> 
       <option value=".mobi">.mobi</option> 
       <option value=".ws">.ws</option> 
       <option value=".cc">.cc</option> 
      </select> 
      <input type=submit name=proses value=Check> 
    </form> 
     <?php 
     } 
    ?> 
</div> 
+0

Downvote из-за отсутствия объяснения того, что было изменено, или почему он исправил код. Нет обсуждения методов или ссылок на документацию. Ответ на этот вопрос не имеет никакого значения для сообщества. – michaelward82

+1

Привет @ michaelward82, спасибо за downvoting.Я понял. С этого момента я дам правильные объяснения, ссылки, документацию. Это слава этого сайта. – Pupil

+0

Тогда я заберу обратно вниз :) Надеюсь, вы продолжаете наслаждаться использованием SO! – michaelward82

1
<div id="domain-name-check"> 
    <?php if(!isset($_POST['proses'])){ ?><h2>Is uw domeinnaam nog vrij?</h2> 
    <form method='post' class="clearfix"> 
     <input type=text name=domain> 
      <select name="suffix"> 
       <option value=".nl">.nl</option> 
       <option value=".be">.be</option> 
       <option value=".com">.com</option> 
       <option value=".net">.net</option> 
       <option value=".org">.org</option> 
       <option value=".biz">.biz</option> 
       <option value=".info">.info</option> 
       <option value=".mobi">.mobi</option> 
       <option value=".ws">.ws</option> 
       <option value=".cc">.cc</option> 
      </select> 
      <input type=submit name=proses value=Check> 
    </form> 
    <?php } //endif form submitted 
    if(isset($_POST['proses'])){ 
     $domain_name = "$_POST[domain]"."$_POST[suffix]"; 
     $arrHost = @gethostbynamel("$domain_name"); 
     $date = date('y-m-d'); 

     if(empty($arrHost)){ 
      echo "<h2>$domain_name is beschikbaar</h2> <a href='/offerte-aanvragen/".$domain_name."/'>Vraag een offerte aan</a>"; 
      $availability = "yes"; 
     }else{ 
      echo "<h2>$domain_name is helaas bezet</h2> <a href='/offerte-aanvragen/".$domain_name."/verhuizen/'>Verhuis uw domein</a>"; 
      $availability = "no"; 
     } 

     mysql_query("INSERT domainnames SET dns='".$domain_name."', available='".$availability."', timestamp='".$date."'")or die(mysql_error()); 

    } 
    ?> 
</div> 
0

Это может быть сделано путем реструктуризации текущий код немного:

<?php 
    if(isset($_POST['proses'])){ 
     # code ... 
    } 
    else { 
?> 
     <div id="domain-name-check"> 
     <!-- your form code goes here --> 
     </div> 
<?php 
    } //end of else block 
?> 

Полный код:

<?php 
if(isset($_POST['proses'])) 
{ 
    $domain_name = "$_POST[domain]"."$_POST[suffix]"; 
    $arrHost = @gethostbynamel("$domain_name"); 
    $date = date('y-m-d'); 

    if(empty($arrHost)){ 
     echo "<h2>$domain_name is beschikbaar</h2> <a href='/offerte-aanvragen/".$domain_name."/'>Vraag een offerte aan</a>"; 
     echo "AVAILABLE"; 
     $availability = "yes"; 
    }else{ 
     echo "<h2>$domain_name is helaas bezet</h2> <a href='/offerte-aanvragen/".$domain_name."/verhuizen/'>Verhuis uw domein</a>"; 
     echo "NOT AVAILABLE"; 
     $availability = "no"; 
    } 

    mysql_query("INSERT domainnames SET dns='".$domain_name."', available='".$availability."', timestamp='".$date."'")or die(mysql_error()); 
} 

else 
{ 
?> 
    <div id="domain-name-check"> 
    <h2>Is uw domeinnaam nog vrij?</h2> 
    <form method='post' class="clearfix"> 
    <input type=text name=domain> 
    <select name="suffix"> 
     <option value=".nl">.nl</option> 
     <option value=".be">.be</option> 
     <option value=".com">.com</option> 
     <option value=".net">.net</option> 
     <option value=".org">.org</option> 
     <option value=".biz">.biz</option> 
     <option value=".info">.info</option> 
     <option value=".mobi">.mobi</option> 
     <option value=".ws">.ws</option> 
     <option value=".cc">.cc</option> 
    </select> 
    <input type=submit name=proses value=Check> 
    </form> 
    </div> 
<?php 
    } 
?> 
0

Under ваш тег формы, вставьте скрытое поле формы:

<form method='post' class="clearfix"> 
<input type="hidden" name="action" id="action" value="hideme" /> 
................................. 
............................. 

</form> 

Теперь под $ _POST секции, используйте следующую логику:

if (isset($_POST['action'])&& ($_POST['action']=='hideme')) 
{ 
    //perform your intended task on submission 
}else { 

//Show My form code again 

} 

просто!

0

HTML-код может быть обернут PHP, чтобы условно показать его.

Рассмотрим следующий пример в качестве шаблона для этого типа функциональности:

<?php if (condition) { ?> 

    <p>HTML</p> 

<?php } ?> 

Это просто.

В этом случае ваше состояние, вероятно, будет

if (isset($_POST['proses']) 
0

заменить <h2>Is uw domeinnaam nog vrij?</h2> с

if (!isset($_POST)){ 
     echo '<h2>Is uw domeinnaam nog vrij?</h2>'; 
} 

это будет убедиться, что, если форма не будет представлен, то h2 будет виден пользователю в качестве альтернативы вы можете использовать Javascript

0

Использовать следующее:

<?php 

if ( isset($_POST['field_name']) ) 
    { 
    .... // submit 
    exit(); 

    } 

?> 

<html> 
<form ... action="" method="POST"> 
.... 
.... 
</form> 
</html> 
Смежные вопросы