2013-07-06 58 views
0

我有一個簡單的表單提交,並在我的process.php文件中檢查每個字段的合法性。如果失敗,我使用$ _SESSION中的鍵/值對在登錄頁面上顯示警報消息。PHP事件的jQuery偵聽器

當頁面加載時,警告消息顯示在div(帶有一些引導樣式,如果重要的話)設置爲.hide。

是否有一個jQuery函數或事件偵聽器,我可以用它來檢測PHP回顯和.toggle警戒框?

我的繼承人相關的代碼,因爲它代表:

<div class="alert alert-error alert-block" id="error-box"> 
    <?php 
     if (isset($_SESSION['first_name'])) { 
     echo $_SESSION['first_name']; 
     } 

     if (isset($_SESSION['last_name'])) { 
     echo $_SESSION['last_name']; 
     } 

     if (isset($_SESSION['email'])) { 
     echo $_SESSION['email']; 
     } 

     if (isset($_SESSION['passlen'])) { 
     echo $_SESSION['passlen']; 
     } 

     if (isset($_SESSION['passmatch'])) { 
     echo $_SESSION['passmatch']; 
     }   
?> 
</div> 

和:

<script> 
    $(document).ready(function(){ 
     $("#error-box").hide();  
}); 
</script> 
+0

jQuery和PHP沒有同時處理,一個是服務器端,另一個是客戶端。你可以檢查是錯誤框是空的,如果是這樣,隱藏它(雖然我不知道你想要什麼) –

回答

0

最簡單的事情是檢查是否#error-box包含任何文本:

$(document).ready(function(){ 
    if ($.trim($("#error-box").text()).length < 1) { 
     $("#error-box").hide(); 
    } 
} 
+0

那一個贏得一天。謝啦。我還學習了一些新的jQuery命令。 – JDillon522

0

PHP運行在服務器和JavaScript在PHP代碼執行和翻譯後運行在瀏覽器中到html。如果出現任何錯誤,則不要使用javascript隱藏/顯示,只插入錯誤消息。

<?php 
// validate your form 

if ($errors) : ?> 
<div class="alert alert-error alert-block" id="error-box"> 
    print your errors 
</div> 
<?php endif; ?> 

然後你不需要JavaScript來隱藏/顯示任何東西。

0

我認爲你有一個錯誤的方法。正如你所說,你有一個簡單的表單,我希望你不要使用ajax。所以通過調用你的PHP腳本,你將有一個頁面重新加載,如果你需要,你可以回顯框。

<?php $fields = array('first_name', 'last_name', 'email', 'passlen', 'passmatch');?> 

<?php if ($_SESSION['first_name'] || $_SESSION['last_name'] || $_SESSION['email'] || $_SESSION['passlen'] || $_SESSION['passmatch']): ?> 

    <div class="alert alert-error alert-block" id="error-box"> 
     <?php 
      foreach($fields as $_field){ 
       if (isset($_SESSION[$_field])) { 
       echo $_SESSION[$_field]; 
       } 
      } 

    ?> 
    </div> 

<?php endif; ?> 

那麼它可以做得更好,但它顯示了我想告訴的!