View Full Version : مشکل pagination
numberone1
چهارشنبه 26 آبان 1395, 16:12 عصر
سلام
تو کنترلر میخوام لینک های pagination و بسازم ولی لینک صفحه دو مساوی هر عددی که اینجا هست میشه!!
$config['per_page'] = 20;
صفحه های بعدی هم ضرب میشه تو عدد این مثلا صفحه 3 میشه 60 صفحه چهار 80
$page = (!is_numeric($this->uri->rsegment(3))?0:urldecode($this->uri->rsegment(3)));
$page = $page * 20;
$news = $this->News_model->getAll($page,20);
if(!is_null($news)){
$config['base_url'] = '/news/';
$config['total_rows'] = $this->News_model->count_all('post',['position' => 'news']);
$config['per_page'] = 20;
$config['uri_segment'] = 3;
$config['num_links'] = 1;
$config['se_page_numbers'] = TRUE;
$config['first_tag_open'] = '<i class="material-icons">keyboard_arrow_right</i>';
$config['last_tag_open'] = '<i class="material-icons">keyboard_arrow_right</i>';
$this->pagination->initialize($config);
$this->page_data['pagination'] = $this->pagination->create_links();
}
plague
پنج شنبه 27 آبان 1395, 18:38 عصر
متوجه نمیشم سوالت چیه
اون offset هستش دیگه
بجای شما ره صفحه شماره offset رو میفرسته
numberone1
جمعه 28 آبان 1395, 03:10 صبح
متوجه نمیشم سوالت چیه
اون offset هستش دیگه
بجای شما ره صفحه شماره offset رو میفرسته
ببین الان این کد درسته دیگه باید لینک های pagination و درست چاپ کنه . حالا من خروجی رو میزارم خودت ببین چه چیز عجیب غریبی چاپ میکنه!
تعداد کل مطالب 16 تا هست
من میخوام تو هر صفحه 5 تا چاپ بشه. این لینک هارو چاپ کرده!!
<strong>۱</strong>
<a data-ci-pagination-page="2" href="/news/5">۲</a><a data-ci-pagination-page="3" href="/news/10">۳</a><a rel="next" data-ci-pagination-page="2" href="/news/5">></a><i class="material-icons">keyboard_arrow_right</i><a data-ci-pagination-page="4" href="/news/15">Last ›</a>
بجای 2-3 عدد 10-15-5 چاپ کرده!
plague
جمعه 28 آبان 1395, 18:27 عصر
درسته دیگه
شماره صفحه رو که چاپ نمیکنه که تو لینک که انتظار 1و2و3 داشته باشی
آفست رو چاپ میکنه کلا با آفست کار میکنه صفحه بندیش نه شماره صفحه
آفست 16 تا هم 0و5و10و15 هستش
کوئریت اینجوری میشه
function news($offset = 0 ){
$news = $this->db->query(" SELECT * FROM news LIMIT 5 OFFSET $offset ");
}
اگه شما میخای بجای آفست شماره صفحه ارسال بکنه کد ایگنایتر و درست انجام نمیشه احتمالا ورژنی که استفاده میکنی قدیمیه و این رو ساپورت نمیکنه (این گزینه جدیدا اضافه شده ) میتونی کتابخونه صفحه بندی رو که توی system\libraries قرار داره چک کنی ببین آپشن se_page_numbers رو داره یا نه
numberone1
جمعه 28 آبان 1395, 18:35 عصر
درسته دیگه
شماره صفحه رو که چاپ نمیکنه که تو لینک که انتظار 1و2و3 داشته باشی
آفست رو چاپ میکنه کلا با آفست کار میکنه صفحه بندیش نه شماره صفحه
آفست 16 تا هم 0و5و10و15 هستش
کوئریت اینجوری میشه
function news($offset = 0 ){
$news = $this->db->query(" SELECT * FROM news LIMIT 5 OFFSET $offset ");
}
اگه شما میخای بجای آفست شماره صفحه ارسال بکنه کد ایگنایتر و درست انجام نمیشه احتمالا ورژنی که استفاده میکنی قدیمیه و این رو ساپورت نمیکنه (این گزینه جدیدا اضافه شده ) میتونی کتابخونه صفحه بندی رو که توی system\libraries قرار داره چک کنی ببین آپشن se_page_numbers رو داره یا نه
افست مشکلش اینه که اگر تعداد نمایش تو هر صفحه رو کم و زیاد کنم لینک های قبلی 404 میشه تو گوگل وب مستر
من از نسخه 3.1 استفاده میکنم رو نسخه 3.1 هنوز اضافه نشده؟!! اگر اضافه شده چجوری میشه لینک های صفحه رو همون حالت معمولی درست کرد؟
plague
جمعه 28 آبان 1395, 21:01 عصر
والله من تغییرات رودنبال نمیکنم و نمیدونم تو چه ورژنی اضافه شده کلا مذدتی میشه با ci کار نمیکنم و اونموقع هم که کار میکردم همیشه از آفست استفاده میکردم بدون مشکل متوجه نمیشم منظور شما از "اگر تعداد نمایش تو هر صفحه رو کم و زیاد کنم لینک های قبلی 404 میشه" چیه
اگه منظورتون اینه که توی صفحه وب این امکان رو به کاربر بدین که مشخص کنه در هر صفحه چند تا نشون بده و کاربر اون رو تغییر میده
که طبیعتا باید با هر تغییر ریست بشه همه چیز و از صفحه 1 دوباره شروع کنه به نمایش
اما برای مشکل شما این pagination یه کلاسه که توی یک فایل با همین نام توی آدرسی که گفتم قرار داره
فایل رو باز کن اونجایی که آفست رو اکو کرده شماره صفحه رو بزار جاش
همچنین شما میتونی بری تو github کد ایگنایتر آخرین ورژن این فایل رو دانلود کنی و جایگزین کنی اگه به جای دیگه وصل نباشه جواب میده
البته به نظر من کثیف کاری و بیخوده و نیاز به این کارا نداری
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.