2008-11-21 43 views
10
Biraz bu kadar zor JavaScript öğrenmek bulmak utanç verici oluyor

, fakat AJAX nasıl kullanılacağınıÖğrenme .. CodeIgniter

en Böyle bir gerçekten basit denetleyicisi var diyelim Bu muhtemelen daha iyi yazılabilir haha.

Bilmek istediğim şey - bir formda bir sayı göndermek için JavaScript'i nasıl kullanabilirim (doğrulama ve modeller hakkında daha sonra endişeleneceğim), nasıl yazılabilir bir şey döndürecek şekilde test() işlevimi nasıl yazmalıyım? JavaScript ile (TRUE dönüşü muhtemelen işe yaramayacağını varsayalım, belki XML veya JSON ya da bunun gibi bir şey?) ve verilere JavaScript ile nasıl erişebilirim?

Bu konuda yardımcı olacak jQuery gibi çerçeveler olduğunu biliyorum, ama şu an sadece en basit düzeyde anlamak istiyorum ve şu ana kadar bulduğum tüm öğreticiler ve kılavuzlar çok ben mi. JQuery'deki bir örnek ya da her ne olursa olsun iyi olurdu.

Çok teşekkürler :)

+2

Endişelenmeye gerek yok Vücudun mükemmel olmadığı –

+0

+1 Ayrıca JavaScript'i biraz zorlayıcı bulabilirsin ama çok fazla pratik yapmalısın. – Anthony

cevap

14

sadece temelde çıktısını ve olacağını yeniden yakalama javascript aracılığıyla bilgi:

var xhr; 
xhr = new XMLHTTPRequest(); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     // this is where the return information is 
     alert('Status: '+xhr.status+' Response: '+xhr.responseText); 
    } 
} 

xhr.open('POST', '/front/test'); 
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xhr.send('someNumber=12'); 
:

public function test() { 
    $somenumber = $this->input->post('someNumber'); 
    if ($somenumber == 12) { 
     print "Number is 12"; 
    } else { 
     print "Number is not 12"; 
    } 
} 

sizin javascript bu gibi görünebilir

Yukarıdaki kod, tarayıcıya özgü sorunları dikkate almaz, ancak en azından firefox/ie7 üzerinde çalışmalıyım.

burada her şeyden önce bir jQuery örnek: Standard Javascript AJAX çağrısı kullanırken 'XMLHTTPRequest' Cevap başlıklarında döndürülmediğini ben de CodeIgniter'daki buldum

var options = { 
    'someNumber' : 12 
} 

$.post('/front/test', options, function(data) { 
    alert(data); // should print "Number is 12" 
}); 
+0

XMLHTTPRequest ile ilki benim için çalışmıyor ve XMLHTTPRequest belirlenmemiş gibi hata veriyor .... ya da bir şey. Ama Jquery ile ikinci olan iyi çalışıyor. Çok teşekkürler. –

+0

+1 Çok teşekkür ederim! Bu açık cevabı gerçekten takdir ediyorum! – Anthony

3

, yukarıda da belirtildiği gibi .

$this->input->is_ajax_request(); 

AJAX POST isteğini işlemek için jQuery'yi kullanmadıkça, giriş yardımcısı hiçbir zaman doğru geri dönmez. Muhtemelen bir yapılandırma sorunu nedeniyle

var query_params = $('#data-form').serialize(); 
    $.ajax({ 
     type: 'POST',  
     url: 'process_this.php", 
     data: queryParams, 
     context: document.body, 

    success: function(){ 
     alert('complete'); // or whatever here 
    } 

benim CI ile ilgisi: http://developer.practicalecommerce.com/articles/1810-The-Benefit-of-Putting-AJAX-and-CodeIgniter-PHP-Together

Bu Sonunda kullanılan budur:

Ben de işe yaramadı bu makalede yöntemi denedik yükleyin, henüz araştırmak için zamanım olmadı.