2017-04-05 59 views
0

我的網頁上有兩個div,一個是形式,一個用於形式的輸出。我如何更新和加載通過AJAX不同的div塊?

當我提交表格時,如果表格是而不是有效,我想重新顯示錶格並突出顯示錶格中的錯誤。如果表單有效,請隱藏表單div,並顯示處理後的輸出。

我能確定的形式是否是我的PHP內有效,即$isFormValid = true;

如果需要的話,我還可以重新加載形式,當它是有效的進入形式股利。 (因爲當它無效時我必須重新加載它)。

問題

如何?

澄清這裏是事件我希望有流量:

enter image description here

+0

對於有效的表單提交什麼是服務器輸出格式? HTML? JSON? –

+0

目前我使用的HTML,但它是靈活的。表單數據基本上是'$ _POST'中的任何內容,我可以接受它並做任何事情。目前,包成HTML,這可能是由於遺留原因是更容易保持作爲HTML .... – Dennis

+0

增加,本身就是通過'的Zend \ Form'庫,生成HTML生成的表單,讓部分有留HTML .... – Dennis

回答

1

在你的PHP文件:

$validFormOutputInJSONFormat = '...'; 
$invalidFormValidationMessagesInJSONFormat = '...'; 

header('Content-type: application/json'); // Remove this line if you've already set this http header in your code. 

if ($isFormValid) { 
    echo '{"valid":true, "data":'.$validFormOutputInJSONFormat.'}'; 
} else { 
    echo '{"valid":false, "data":'.$invalidFormValidationMessagesInJSONFormat.'}'; 
} 

在你的Ajax響應處理功能的使用是這樣的:

if (responseData.valid) { 
    // JS code to hide the form 
    // JS code to show output. responseData.data has the info you will need here 
} else { 
    // JS code to show validation messages in the form. responseData.data has the info you will need here 
} 
1

如果可以輸出你的結果,作爲您的JSON [R服務器端代碼,像

{success:true, formValid:true , message: 'success result'} 

{success:true, formValid: false, message: 'some error message'} 

那麼你可以使用AJAX POST方法來發表您的形式,並在成功,您可以檢查formValid價值和隱藏/顯示div的或錯誤消息取決於formValid值

$('#myform').on('submit' , function(e){ 
    e.preventDefault(); 
    $.ajax({ 
     data : $(this).serializeArray(), 
     url : $(this).attr('action'), 
     type : 'POST', 
     success : function(result){ 
     if(result.success) { 
      if(result.formValid === true) { 
      // form validation passed. 
      } 
      else { 
      // form is invalid. 
      } 
     }else{ 
      // ajax didn't worked out, no response 
     } 
     } 

    }) 
    })