NOTE: This is a long question. I've explained all the 'basics' at the top and then there's some further (optional) information for if you need it.
Merhaba millet
Ben birkaç bit eklemek için tasarımcı için biraz daha güzel yapmak için kodumu yeniden yapılandırmak için çalışıyordu iken temelde dün gece bu konuda 21:00 oluyor başladı. Ben vazgeçtim bu noktada 02:00 kadar bunu düzeltmek için çalıştı. Hala şaşkın, bu sabah geri geldi.
Sana karşı dürüst olacağım, ben oldukça kötü bir JavaScript geliştiricisi değilim. Bu projeye başlarken yana Javascript benim için tamamen yeni olmuştur ve ben birlikte gittim ben sadece öğrenmek ettik. Benim kod yapısı (belki de onu geliştirmek için nasıl işaretçiler bir çift vermek?) Gerçekten kötü olup olmadığını Yani lütfen beni affet.
Yani, soruna: ziyaret http://furnace.howcode.com (onu tam olmaktan uzak), onu yeniden üretmek için. Bu sorun, biraz kafa karıştırıcı ama gerçekten yardım takdir ediyorum.
- Yani ikinci sütunda üç sekme göreceksiniz
- 'Yeni' sekmesi varsayılan olarak seçilir. Altına gidin, ve 3 daha fazla sonuç dinamik Ajax ile getirilen edilmelidir.
- Şimdi 'En İyi' sekmesine tıklayın. Tüm sonuçları görmek ama Reytinge göre sipariş edeceğiz
- 'Top Rated' dibine gidin. Sen ALTI sonuç döndürdü görürsünüz.
- This is where it goes wrong. Sadece daha üç (18 girişleri toplam vardır) iade edilmelidir. Eğer dikkatli iseniz 3 iki 'blok' geri fark edeceksiniz.
- İlk 'block' 'Yeni' sekmesinden sonuçlarının ikinci sayfası. İkinci blok is what I just want returned.
Herhangi bir mantıklı mı? Aldırma!
Yani temelde Kundakçı bu kontrol. Ne olur o http://furnace.howcode.com/code/loadmore için ONE POST isteği çağıran bir 'Temiz' sayfasında (İlk yük, yapılan şey) den, olduğunu.
Ama sekmeleri yeni bir yük her zaman, bir ADDITIONAL POST isteğinde normalde sadece TEK olmalı her zaman yapar.
Yani, bana yardımcı olabilir? Ben gerçekten takdir ediyorum! Bu noktada bağımsız bir soruşturma başlayabileceğini ya da biraz daha (isteğe bağlı) bilgi için okuyun.
Teşekkürler!
Kriko
Further Info (may be irrelevant but here for reference):
Bazı Javascript kodu veya her zaman onu çoğaltan geride kalmaktan bir şey var neredeyse gibi. Bunu ben tarayıcı altına kaydırılacağı algılamak için kullanabileceğiniz bu kod olabileceğini düşündüm:
var col = $('#col2');
col.scroll(function(){
if (col.outerHeight() == (col.get(0).scrollHeight - col.scrollTop()))
loadMore(1);
});
Peki ben düşündüm kod geride bıraktı ve böylece (her sekme için farklı veri içeren) Eğer # col2 ilerlemek her zaman bu tespit ve de yeni # için ilave olmasıydı. . Da newestcol, featuredcol veya topratedcol -.. Peki, ben her sekme tıklama # Süt2 bir dinamik sınıf verdirdi. Sadece her sekme için ayrı ayrı algılar diye ve sonra dinamik var col=$('.newestcol');
değişti (Makin 'bir anlam?!). Ama hey, o hiçbir şey yapmadı.
Başka yararlı bir ayrıntı: burada için PHP var http://furnace.howcode.com/code/loadmore:
$kind = $this->input->post('kind');
if ($kind == 1){ // kind is 1 - newest
$start = $this->input->post('currentpage');
$data['query'] = "SELECT code.id AS codeid, code.title AS codetitle, code.summary AS codesummary, code.author AS codeauthor, code.rating AS rating, code.date,
code_tags.*,
tags.*,
users.firstname AS authorname,
users.id AS authorid,
GROUP_CONCAT(tags.tag SEPARATOR ', ') AS taggroup
FROM code, code_tags, tags, users
WHERE users.id = code.author AND code_tags.code_id = code.id AND tags.id = code_tags.tag_id
GROUP BY code_id
ORDER BY date DESC
LIMIT $start, 15 ";
$this->load->view('code/ajaxlist',$data);
} elseif ($kind == 2) { // kind is 2 - featured
Yani benim jQuery kodu değişken bir 'tür' gönderir. Durum 1 ise, vs vs, Yeni için sorguyu çalıştırır
Furnace.howcode.com / kod / ajaxlist için PHP kodu:
<?php // Our query base
// SELECT * FROM code ORDER BY date DESC
$query = $this->db->query($query);
foreach($query->result() as $row) {
?>
<script type="text/javascript">
$('#title-<?php echo $row->codeid;?>').click(function() {
var form_data = {
id: <?php echo $row->codeid; ?>
};
$('#col3').fadeOut('slow', function() {
$.ajax({
url: "<?php echo site_url('code/viewajax');?>",
type: 'POST',
data: form_data,
success: function(msg) {
$('#col3').html(msg);
$('#col3').fadeIn('fast');
}
});
});
});
</script>
<div class="result">
<div class="resulttext">
<div id="title-<?php echo $row->codeid; ?>" class="title">
<?php echo anchor('#',$row->codetitle); ?>
</div>
<div class="summary">
<?php echo $row->codesummary; ?>
</div>
<!-- Now insert the 5-star rating system -->
<?php include($_SERVER['DOCUMENT_ROOT']."/fivestars/5star.php");?>
<div class="bottom">
<div class="author">
Submitted by <?php echo anchor('auth/profile/'.$row->authorid,''.$row->authorname);?>
</div>
<?php
// Now we need to take the GROUP_CONCATted tags and split them using the magic of PHP into seperate tags
$tagarray = explode(", ", $row->taggroup);
foreach ($tagarray as $tag) {
?>
<div class="tagbutton" href="#">
<span><?php echo $tag; ?></span>
</div>
<?php } ?>
</div>
</div>
</div>
<?php }
echo " ";?>
<script type="text/javascript">
var newpage = <?php echo $this->input->post('currentpage') + 15;?>;
</script>
Yani PHP her şey. Gerisi size kundakçı veya kaynak kodunu görüntüleyerek görmek gerekir. Ben çok altındaki etiketleri tüm Tab / tıklayarak / Ajaxloading bit koyduk. Tüm başladı önce bir açıklama var.
Yardımlarınız için çok teşekkürler!