2010-11-18 8 views
1

Aşağıda bu kod var. Formu gönderdikten sonra "/frontend_dev.php/coche1/new" adresine geçmeyi bekledim ama asla devam etmiyor (ilgili yönteme bir kalıp ("enter") ekledim ama "enter" gösterilmiyor) ...jQuery.ajax: ilk adımlar. Bu kod şu URL'ye gitmiyor

<script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js'></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.formulario').submit(function() { 
     form_data = $.param($(this).serializeArray()); 
     $.ajax({ 
      url: "/frontend_dev.php/coche1/new", 
      type: "POST", 
      data: form_data, 
      success: function() { 
       alert("Data Saved: "); 
      } 
     }); 
    }); 
}); 
</script> 


<form class="formulario" id="1"> 
    <input type="submit" value="Save"> 
    <label for="coche1_marca">Marca</label> 
    <input type="text" id="coche1_marca" value="FJSDF" name="coche1[marca]"> 
    <label for="coche1_modelo">Modelo</label> 
    <input type="text" id="coche1_modelo" value="FJSDÑF" name="coche1[modelo]"> 
</form> 

Herhangi bir yardım?

Selamlar

Javi

+0

Firebug konsolu ile kontrol edebilir ve AJAX çağrısının dışarıda olup olmadığını ve çağrı durumunun ne olduğunu görebilir misiniz? –

cevap

3

Sen .submit() işleyicisi sonunda yanlış bir dönüş olması gerekir. Aksi takdirde AJAX'ı tetikler, ancak hemen formunu da gönderir, bu da formun kendisinde herhangi bir eylem olmadığı için sayfanın yeniden yüklenmesine neden olur. Geri dönüş yanlışı eklemek AJAX'ın beklendiği gibi tetiklendiğini gösterir.

+0

Teşekkürler, herhangi bir şekilde "enter" dizesini görmek için Firebug konsoluna gitmem gerekti. – ziiweb

2

Formun gönderilmesi için prevent the default action adresine hiçbir şey yapmıyorsunuz, bu nedenle bu özelliği action özelliğinde belirtilen URL'ye gönderir (bu zorunlu özelliği dahil etmediğinizden, geçerli URL'yi kullanır). Bu, XHR isteği geri gelmeden önce gerçekleşir, bu nedenle başarı yöntemi hiçbir zaman patlamaz.

1

kullanın İşte bu

... 
$('.formulario').submit(function (event) 
{ 
    event.preventDefault(); // This will stop the form from submitting. 
    ... 
    return false; // Should also stop the form from submitting, but have ran into cases where it does not. Still, include it for good measure. 
} 

olay argüman hakkında akılda tutulması gereken bazı noktalar şunlardır:

event.preventDefault() // Stops default actions, link redirection, form submission, etc... 
event.stopPropagation() // Stops the event from propagating up the DOM tree. 
event.stopImmediatePropagation() // Stops the current event and ALL other events on the element from propagating any further up the DOM tree. 

fazla bilgi için JQuery olay yayılması üzerine, buraya bakın: http://www.c-sharpcorner.com/UploadFile/satisharveti/665/Default.aspx