submit_form düğmesi tıklandıktan sonra yeniden yükleme gizli bir div göstermek

4 Cevap php

Ben kullanıcı submit form butonuna tıkladıktan sonra sayfayı yeniden üzerine bir div göstermek gerekir.

Specifically, I have a PHP contact form in a show/hide div. Clicking on contact shows and hides the contact form. Both the show/hide js and the php contact form work perfectly. When the user clicks submit -- the page reloads and the "message sent" is written in the contact form div. But when the page reloads, the form is in a div set to display: none; in the CSS -- which is how the page loads on default.

Sonra submit, ben gizli div iletişim formunu yeniden ve göstermek sayfası gerekir. Ben sayfa için tüm javascript varsayılan yükler beri nereden başlayacağınızı tam olarak emin değilim. Tüm PHP Neler Ayrıca beri ben ayarlamak veya content_form div bir çapa arayamazsın.

Teşekkürler!

4 Cevap

Ben bir JS birinin üzerine bir CSS çözümü tercih ederim.

if ($form_is_valid)
    echo '<style type="text/css">#contact { display: block; }</style>';

Edit: Sadece işler biraz daha temiz yapmak için, ben bunun başarıyla teslim oldu eğer forma bir sınıf ekleyerek öneririz. Böyle bir şey:

$class = $form_is_valid ? ' class="submitted"' : '';
echo '<form method="..." action="..."' . $class . '>...</form>';

Sonra, sadece bu yüzden gibi display: none; tanımından sonra gelen bir CSS tanımı yapabiliriz:

form.submitted { display: block; }

Sen formun başarıyla gönderildi yalnızca bir senaryo yazmak için bazı PHP kodu kullanabilirsiniz.

Sonra sadece (şu PHP kodu benzer) engellemek için eleman ekranı ayarlamak için bir JavaScript echo:

if($form_is_valid)
{
    echo '<script type="text/javascript">'
       . 'document.getElementById("elementID").style.display = "block";'
       . '</script>';
}

Atılım cevabı iyi çalışması gerekir, ama ben şahsen sayfa yükün zamanında gerçekten durumda değilse, hatta CSS tarafından gizli, biçimlendirme başarı ya da hata mesajı her türlü koyarak sevmiyorum. Sayfa yine yeniden olduğundan, bu yapıyor bu sorunu çözmek için hiç bir JavaScript veya CSS için ihtiyacı ortadan kaldıracaktır:

<?php if ($form_is_valid) include('SnippetFileWithSuccessMessageDivInIt.php') />

Eğer form gönderilen içerik ile yüklü ise, giriş alanlarında metnin varlığını tespit etmek için javascript kullanabilirsiniz. Herhangi bir içerik varsa, ekranı ayarlayın: blok.