Codeigniter - HTML bloğunu oluşturmak için kodu yeniden nasıl

2 Cevap php

Ben yanlış bir şekilde bu yaklaşırken olabileceğini düşünüyorum, bu yüzden herhangi bir yorum / rehberlik seviniriz. Umarım ben elde etmek ne çalışıyorum tutarlı yeterince açıklayabilir:

  • I want to create a block of HTML (e.g. a box containing a user's profile), which I will load as part of my layout on most pages that I generate.

  • I would also like to be able to re-generate the content within this box on its own from a separate URL. This is so I can update the box with an AJAX call.

  • I don't want to duplicate the code that creates this HTML.

Ben initally bir AJAX çağrısı kullanarak bu kutuyu yük olabilir ki takdir ediyorum, ama bu sunucuya gereksiz çağrı eklemek için bana görünüyor?

Ben bunu yapabileceğimi düşündüm yolu sadece HTML bloğunu işler, ama nasıl sonra başka bir kontrolör / görünüm içinde bu yöntem çıktı rica ediyorum benim denetleyicisi bir yöntem olan gereğidir?

Bu nasıl yaklaşım?

Şimdiden teşekkürler

2 Cevap

Kullanıcının profil için HTML bloğunu oluşturmak ve kullanarak kontrolör onu aramak için bir görünüm oluşturun:

$user_html = $this->load->view('user_view', $user_data, true);

Üçüncü parametre yerine onu görüntüleyen bir dizge olarak görünüm verir. Bu, daha sonra bilinen bir şekilde başka bir görünümüne geçirilebilir.

$data['user_block'] = $user_html;
$this->load->view('page_view', $data);

Bildiğim kadarıyla veriler ile ilgili olarak, PHP ile HTML oluşturmak için 'gereğini' yok. Sen jQuery sayfa kaynak bir JSON nesnesi çıkışından gerekli unsurları oluşturmak için kullanabilirsiniz. O domready 'bir devlet isabet etrafında alır iken Daha sonra eleman güzel bir küçük' yükleniyor 'animasyon gösterebilir.

Bildiğim kadarıyla bir div repopulating olarak, aşağıdakileri yapın:

Make a div for your profile and give it an id. Put each 'element' of data into it's own p element and wrap the actual data in a span element. e.g <p>Name: <span>Joe Bloggs</span></p> Then simply use jQuery to traverse the dom and repopulate the spans with data. Just make sure you output your data in the correct 'order'.

Herhangi bir sorunuz, geribildirim çekinmeyin.