2011-11-11 22 views

cevap

5

.submit() yerine $.post() isteğini kullanabilirsiniz. $.post() başarılı bir geri dönüşüme sahiptir.

$.post() (hedef URL) ve form öğelerinizin öğelerini .serialize() doldurmanız gerekir.

17

bu deneyin:

jQuery:

$(document).ready(function() { 
    $('#form').submit(function() { 
     var status = '<img class="loading" src="loading_detail.gif" alt="Loading..." />'; 
     $("#ajax").after(status); 
     $.ajax({ 
      type: 'POST', 
      url: $(this).attr('action'), 
      data: $(this).serialize(), 
      dataType: 'json', 
      success: function(json) { 
       if(json.type == 'success') { 
        $('#msg').css("color","green").html(json.message); 
       } else if(json.type == 'warning'){ 
        $('#msg').css("color","yellow").html(json.message); 
       } else if(json.type == 'error'){ 
        $('#msg').css("color","red").html(json.message); 
       } 
       $('.loading').remove(); 
      } 
     }) 
     return false; 
    }); 
}); 

Html:

<div id="msg"></div> 
<form id="form" method="post" action="action.php" > 
    <input type="text" name="email" /> 
    <input type="submit" name="submit" value="submit" /><span id="ajax"></span> 
</form> 

action.php:

<?php 
if(isset($_POST['email'])){ 
$val = $_POST['email']; 
switch ($val) { 
    case '[email protected]': 
     $return = array('type'=>'success', 'message'=>'This is success message!'); break; 
    case 'email': 
     $return = array('type'=>'warning', 'message'=>'This is warning message!'); break; 
    default: 
     $return = array('type'=>'error', 'message'=>'This is error message!'); 
} 
echo json_encode($return); 
} 
?> 

Not: Formu program aracılığıyla gönderiyorsanız, bir kez daha $('#form').submit() numaralı telefonu aramanız gerekir, ancak bu defa argüman olmadan gönderim etkinliğini tetiklemeniz gerekir.

+0

'senin cevabın something' kısmı bana kafa karıştırıcı gibi görünüyor. – stewart715

+0

@masedesign: Cevabımı düzenledim, umarım yardımcı olabilirsiniz. –

1

Bir sayfa gönderirken bir dönen tekerleği göstermek için, animasyonlu bir GIF almayı deneyin (çok fazla boş alan varsa). Bu GIF ile sayfanıza uygulamak:

class="myloadingcircle" style="display:none" 

ve sonra kullanmak jQuery:

$("form").submit(function(e) { $(".myloadingcircle").show(); }); 
+1

Form doğrulama ile eşleştirilmişse bu işe yaramaz. Form geçersiz olsa bile dönme tekerleği parlayacaktır. – MattParra

İlgili konular