2016-04-13 19 views
0

Cakephp 2.8.0 kullanıyorum. Benim problemim ajax. Uygulamamda ajax'ı nasıl anladığımı bilmiyorum. Ben kategoriler ile li bağlantıları var ve tıklama sonra bazı html kodu silmek ve benim gerekli kontrolörde gerekli kategoriyi bulmak ve bu html yanıt olarak bu dizi olsun ve yazdırın.cakephp'de ajax ile Galeri yükleme

benim PhotosController eylemi:

public function getPhotoByCategory($category = null) 
{ 
    $category=$_GET['category']; 
    debug($category); 
    $this->render('getPhotoByCategory', 'ajax'); 
} 

Benim html kodu:

<div class="lol"> 
      <ul> 
       <?php foreach($categories as $category):?> 
       <li> 
        <a href="<?php echo $category['Category']['cat_name'];?>" class="lol"><?php echo $category['Category']['cat_name'];?></a> 
       </li> 
       <?php endforeach;?> 
      </ul> 
     </div> 

Benim HB kodu:

$(".lol").click(function (e) { 
    e.preventDefault(); 
    var category = $(this).attr("href"); 
    $.ajax({ 
     type: 'get',category, 
     data: {catyegory: 
     url: '<?php echo $this->Html->url(array('controller' => 'Photos', 'action' => 'getPhotoByCategory')); ?>', 
     success: function(response) { 
      if (response.error) { 
       alert(response.error); 
       console.log(response.error); 
      } 
      if (response.content) { 
       $('#target').html(response.content); 
      } 
     }, 
     error: function(e) { 
      alert("An error occurred: " + e.responseText.message); 
      console.log(e); 
     } 
    }); 
}); 

, bu durum için CakePHP'de doğru ajax ile bana yardım edin.

cevap

0

Öğeleri getirmek için AJAX'ı işlemenin en iyi yolunun, eklemek istediğiniz öğelerin bir öğesinin (durumunuzdaki bir kategoriden fotoğraflar) oluşturulmasıdır.

PhotosController.php

public function getPhotoByCategory($category = null) 
{ 

    $this->set('photos', $this->Photo->find('all', ['conditions' => ['category_id' => $category]]); 
    $this->render('Elements/getPhotoByCategory'); 
} 

yukarıdaki örnekte eleman içerir $ resim döngüsü ve bunları çıktı olarak döngü için. Bu da aşağı aşağıda JS kodu kullanarak div "lol" yüklenir:

Görüntüleme/Fotoğraflar/get_photo_by_category.ctp

<button class="loadphoto">Load Photos</button> 
<div class="lol"> 
</div> 

JS Kodu (görünümün üst?)

$('.loadphotos').click(function(e) { 
    $('.lol').load('/Photos/getPhotoByCategory/1') 
    .fail(alert("error")); 
}); 

Dereuromark, AJAX and CakePHP

üzerinde düzgün bir belge yazmıştır.