PDA

View Full Version : سوال: اشكال تراز بندي



ravand
سه شنبه 02 خرداد 1391, 10:45 صبح
سلام اين اسكريپت صفحه بندي سايت هست كه با php نوشته شده براي اينكه خيلي ساده بود ازش خوشم امده و ميخوام ازش استفاده كنم ولي دكمه هاش مثل متن هاش وسط قرار نميگيره. هر كاريش كردم نشد.
چون مشكلش از ترازبنديش بود براي همين توي اين انجمن مطرحش كردم.
87343
تصوير ظاهرش رو ببينيد:
87344
متشكرم.

ravand
سه شنبه 02 خرداد 1391, 14:24 عصر
متشكرم . مشكلم حل شد:
load_data.php



<?php
if($_POST['page'])
{
$page = $_POST['page'];
$cur_page = $page;
$page -= 1;
$per_page = 15;
$previous_btn = true;
$next_btn = true;
$first_btn = true;
$last_btn = true;
$start = $page * $per_page;
include "db.php";
$query_pag_data = "SELECT * from posts LIMIT $start, $per_page";
mysql_query('SET NAMES `utf8`',$bd);
$result_pag_data = mysql_query($query_pag_data);

while ($row = mysql_fetch_array($result_pag_data)) {

$htmlmsg=htmlentities($row['subject'],ENT_QUOTES, "UTF-8");

$msg .= "<li> " . $htmlmsg . "</li>";
}

/* --------------------------------------------- */
$query_pag_num = "SELECT COUNT(*) AS count FROM posts";
$result_pag_num = mysql_query($query_pag_num);
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);
/* ---------------Calculating the starting and endign values for the loop----------------------------------- */
if ($cur_page >= 7) {
$start_loop = $cur_page - 3;
if ($no_of_paginations > $cur_page + 3)
$end_loop = $cur_page + 3;
else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6) {
$start_loop = $no_of_paginations - 6;
$end_loop = $no_of_paginations;
} else {
$end_loop = $no_of_paginations;
}
} else {
$start_loop = 1;
if ($no_of_paginations > 7)
$end_loop = 7;
else
$end_loop = $no_of_paginations;
}
/* ----------------------------------------------------------------------------------------------------------- */
$msg .= "<div class='pagination'><ul>";

// FOR ENABLING THE FIRST BUTTON
if ($first_btn && $cur_page > 1) {
$msg .= "<li p='1' class='active'>اول</li>";
} else if ($first_btn) {
$msg .= "<li p='1' class='inactive'>اول</li>";
}
// FOR ENABLING THE PREVIOUS BUTTON
if ($previous_btn && $cur_page > 1) {
$pre = $cur_page - 1;
$msg .= "<li p='$pre' class='active'>قبلي</li>";
} else if ($previous_btn) {
$msg .= "<li class='inactive'>قبلي</li>";
}
for ($i = $start_loop; $i <= $end_loop; $i++) {

if ($cur_page == $i)
$msg .= "<li p='$i' style='color:#fff;background-color:#006699;' class='active'>{$i}</li>";
else
$msg .= "<li p='$i' class='active'>{$i}</li>";
}
// TO ENABLE THE NEXT BUTTON
if ($next_btn && $cur_page < $no_of_paginations) {
$nex = $cur_page + 1;
$msg .= "<li p='$nex' class='active'>بعدي </li>";
} else if ($next_btn) {
$msg .= "<li class='inactive'>بعدي</li>";
}
// TO ENABLE THE END BUTTON
if ($last_btn && $cur_page < $no_of_paginations) {
$msg .= "<li p='$no_of_paginations' class='active'>آخر</li>";
} else if ($last_btn) {
$msg .= "<li p='$no_of_paginations' class='inactive'>آخر</li>";
$msg .="</div>";
}
echo $msg;
}

?>

pagination.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>بانك اطلاعاتي</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function loadData(page){
$.ajax
({
type: "POST",
url: "load_data.php",
data: "page="+page,
success: function(msg)
{
$("#container").ajaxComplete(function(event, request, settings)
{
$("#container").html(msg);
});
}
});
}
loadData(1); // For first time page load default results
$('#container .pagination li.active').live('click',function(){
var page = $(this).attr('p');
loadData(page);
});
});
</script>
<style type="text/css">
#container{
list-style: none;
width: 300px;
direction:rtl;
}
#container .pagination ul li{
list-style: none;
float: right;
border: 1px solid #006699;
padding: 2px 6px 2px 6px;
margin: 0 3px 0 3px;
font-family: arial;
font-size: 14px;
color: #006699;
font-weight: bold;
background-color: #f2f2f2;
}
#container .pagination ul li:hover{
color: #fff;
background-color: #006699;
cursor: pointer;
}
</style>
</head>
<body>
<div align="center">
<div id="container">
<div class="pagination">
</div>
</div>
</div>
</body>
</html>

lady64
سه شنبه 02 خرداد 1391, 16:41 عصر
آقای راوندی ، این همون کدی بود که تو تالار php میخواستید ؟ که وقتی تعداد صفحات زیاد میشه مابقی رو نقطه چین بزاره ؟
من هم این صفحه بندی رو میخواستم استفاده کنم ولی چند تا سوال ممنون میشم جواب بدید :
1. کدهای مربوط به جدول برای خروجی اطلاعات چرا وجود نداره ؟ برای خروجی گرفتن چکار کنم ؟
2. همون ابتدای load مقدار page چک میشه ، page اولین بار کجا ست شده ؟
3. pagintion .php کدوم قسمت برنامه استفاده کردید ؟

ravand
سه شنبه 02 خرداد 1391, 18:50 عصر
اين كدها كامل هست كافيه فايل pagintion .php رو اجرا كنيد

lady64
چهارشنبه 03 خرداد 1391, 16:34 عصر
با سلام
ممنونم حل شد . فقط یه مشکلی هست. برنامه طوری هست که باید مستقیم فایل pagintation.php اجرا بشه . مثلا وقتی روی یک لینک کلیک میکنم باید ارجاع بشه به این آدرس تا نمایش داده بشه.
روال کار من این هست که تمپلت رو ایجاد کردم و صفحات رو require میکنم در تمپلت. حالا این فایل pagination.php رو اگر جایی require کنم اجرا نمیشه و صفحه خالیه .حتما مستقیما باید ارجاع بشه به خودش و include یا require نشه.. میشه راهنمایی کنید. آخه من به کدهای جاوااسکریپتش خیلی تسلط ندارم.
با سپاس

ravand
چهارشنبه 03 خرداد 1391, 16:41 عصر
كدهاي شما اگر دستورات sql است داخل اين فايل بذارload_data.php
و نام فايل pagintion .php رو هم ميتوني تغيير بدي و اسم فايل اصلي رو روش بذاري.

lady64
چهارشنبه 03 خرداد 1391, 18:04 عصر
ممنون . من کدها رو در load_data ‌قرار دادم و از paginatin.php اجرایی گرفتم و درست بود.
منظورم اینه که مثلا در صفحه ی index.php نمیتونم اینو قرار بدم :


reauire("../form/pagination.php")

یعنی به این صورت که نوشتم هیچی نشون نمیده .میبایست حتما مستقیما pagination ( حالا اسمش مهم نیست ) رو باز کنم . من میخوام صفحه ی pagination‌ رو reauire کنم در مثلا index.php .

lady64
پنج شنبه 04 خرداد 1391, 10:46 صبح
این هم حل شد .
فقط یک چیز دیگه مونده . من حدودا 10 مورد صفحه بندی دارم ، اطلاعات اشخاص ، اطلاعات قطعات ، و .......
میخوام بتونم از صفحه pagination.php کوئری های مختلف رو به load_data بفرستم و نمیخوام چندین load_data درست کنم،چطور این کار رو در خط 13 از pagination انجام بدم و متغیر هایی رو به load_data بفرستم؟