Mesmaili

گذاشتن فیلتر برای نمایش !

17 پست در این موضوع قرار دارد

درود دوستان.

من یک دسته رو فراخوانی میکنم و مطالبش رو نشون میدم. مثلا نرم افزار

حالا میخوام یه کادری ، نوشته یا هرچی دیگه کنار اون بخش بذارم به عنوان : نرم افزار پارسی - نرم افزار ... که هرکی روی نرم افزار پارسی زد ، اون مطالب فراخوانی شده توی همون صفحه نرم افزارهای پارسی رو فقط به نمایش در بیاره ! همون sort میشه ..

برای مثال من این کد رو دارم :


<?php $recentposts = get_posts('numberposts=8&category=3');
foreach ($recentposts as $post) : setup_postdata($post); ?>
<div rel="tooltip" title="<?php the_title(); ?>" class="view size">
<div class="thumbnail isotope_item">
<a href="<?php the_permalink() ?>"> <img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=146&w=146&zc=1" title="<?php the_title(); ?>" /></a>
<a href="<?php the_permalink() ?>">
<div class="mask size space">
<button class="btn btn-small"><i class="icon-white"></i> Download</button>
</a>
</div>
</div>
</div>
<?php endforeach; ?>

0

به اشتراک گذاری این پست


لینک به پست

یعنی با کلیک روی هر عنوان براساس اون دسته پستها کوئری بگیرن و نمایش داده بشن؟

3

به اشتراک گذاری این پست


لینک به پست

سپاس مرتضی جان ، بله

0

به اشتراک گذاری این پست


لینک به پست

خوب یک سوال دیگه هم دارم

میخواین اون چیزی که کلیک میشه لینک باشه یا دکمه؟

چون شما هم میتونید از متد get هم post برای ارسال اطلاعات و نمایش خروجی استفاده کنید

3

به اشتراک گذاری این پست


لینک به پست

فرقی نمیکنه ، دکمه یا لینک.. حالا شما از طریق لینک رو آموزش بدید ، دکمه هم فک کنم بتونم درست کنم یا نهایتا از شما راهنمایی میگیرم

برای اینکه منظورمو درست فهمونده باشم ، ماجرا دقیقا مثل این قالب هایی که نمونه کار میذارنِ ! که بالاش دسته ها نوشته شده مثل : شخصی ، سازمانی و.. که روی هرکدوم کلیک میکنیم ، مطالب نامربوط حذف و مطالب اون دسته ی کلیک شده به نمایش در میاد

0

به اشتراک گذاری این پست


لینک به پست

خوب الان فرق کرد!

اون نوشته ها اگر دسته بندی باشن کلا قضیه فرق میکنه. دسته بندی هستن؟

2

به اشتراک گذاری این پست


لینک به پست

بله بله ، ظاهرا اول منظورم رو اشتباه نوشتم

ببینید ، یک دسته داریم با نام نرم افزار

که دو زیر مجموعه داره :

- نرم افزار

-- کامل

-- پرتابل

حالا ما یه باکس داریم که با کدی که بالا گذاشتم ، تمامی مطالب موضوعات ( نرم افزار - کامل - پرتابل ) رو نمایش میده.

میخوام بالای این باکس ، یه دکمه یا نوشته بذارم { کامل } و { پرتابل } که کاربر اگر روی { کامل }کلیک کرد ، به صورت ایجکس در همون باکس فقط مطالب موضوع { کامل } نمایش داده بشه و مطالب{ پرتابل} حذف بشه

0

به اشتراک گذاری این پست


لینک به پست

در مورد ایجاکس، میتونید از تابع $.post جی کوئری برای ارسال استفاده کنید

http://api.jquery.com/jQuery.post/

اما چطور (راه پیشنهادی)

شما لینک هاتون رو با بک خاصیت مثلا بصورت زیر قرار بدید:

<a href="" data-cat-id="5">نا دسته</a>

data-cat-id همون مقداری هست که باید با تابع $.post ارسال کنید

حالا در صفحه پروسس که کوئری و حلقه پست شما وجود داره باید اول با $_POST مقدار رو بگیرید و بعد در متغییری بریزید و مقدار متغییر رو برای خاصیت cat در کوئری قرار بدید

2

به اشتراک گذاری این پست


لینک به پست

سپاس فراوان مرتضی جان.

اما حقیقتا سردرگم شدم ، اگر کمی مبتدیانه تر توضیح بدید ممنون میشم

0

به اشتراک گذاری این پست


لینک به پست

با jquery هم می تونید چنین چیزی را بسازید

نمونه :

http://fakhar.a-w.ir/

روش ساخت:

یک کپی از index.php تهیه کنید به نام home.php ذخیره اش کنید و کدهای حلقه اش را حذف کنید و این کدها رال جایگزین نمایید

<body>

<?php

if (have_posts()) :

foreach($posts as $post) :

$category = get_the_category();

$cats[$category[0]->cat_ID] = $category[0]->cat_name;

endforeach;

$cats = array_flip($cats);

?>

<h3>

دسته بندی های این صفحه :</h3>

<p>

<form>

<select id="selectCAT" >

<option value="all">مشاهده همه</option>

<?php

foreach($cats as $current_cat) :

?>

<?php if($first) { echo ' '; } $first++; ?><option value="cat-<?php echo $current_cat; ?>"><?php echo get_the_category_by_id($current_cat); ?></option>

<?php endforeach; ?>

</select>

</form>

</p>

<?php

foreach($cats as $current_cat) :

?>

<?php

foreach($posts as $post) :

the_post();

$category = get_the_category();

if($current_cat == $category[0]->cat_ID) :

?>

<div id="cat-<?php echo $current_cat; ?>" class="currentCatPost">

<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>

<small><?php the_time('F jS, Y') ?> - <?php the_author() ?> </small>

<center><?php echo get_the_category_by_id($current_cat); ?></center>

<p class="postmetadata"><?php edit_post_link('Edit','','<strong>|</strong>'); ?> </p>

</div>

<?php

endif;

endforeach;

rewind_posts();

endforeach;

?>

<?php endif;?>

<script type="text/javascript">

$("#selectCAT").change(function() {

var catid = $(this).val();

var cats = ".currentCatPost#" + catid;

if(catid != 'all') {

$(".currentCatPost").hide("500");

$(cats).show("1500");

}

else {

$(".currentCatPost").show("500");

}

});

</script>

3

به اشتراک گذاری این پست


لینک به پست

ایمان جان بسیار سپاسگذارم.

اما متاسفانه این ارور رو داد :

Warning: array_flip(): Can only flip STRING and INTEGER values! in .....

این کدی که دادید تمامی دسته هارو به نمایش در میاره ، درسته؟ برای اینکه فقط دو یه سه دسته به نمایش در بیاد ، تو کدوم قسمتش باید id هارو وارد کرد؟

0

به اشتراک گذاری این پست


لینک به پست

نمونه را ببینیند

کدش هم با کلیک بر روی مشاهده کد در زیر خود نمونه مشخص است

این نمونه بر اساس کوئری موجود من نوشته شده شما باید برای کوئری خودتون این کد را بسازید کد قالب صفحه مورد نظرتون را بگذارید تا عرض کنم

http://fakhar.a-w.ir/

2

به اشتراک گذاری این پست


لینک به پست

میخوام توی صفحه اصلی سایت به نمایش در بیارم ، مطالب رو باکس بندی کردم


<?php get_header(); ?>
<h3>Latest Soft...</h3>
<div class="row-fluid">
<ul class="thumbnails example-sites">
<?php $recentposts = get_posts('numberposts=8&category=3');
foreach ($recentposts as $post) : setup_postdata($post); ?>
<div rel="tooltip" title="<?php the_title(); ?>" class="view size">
<div class="thumbnail isotope_item">
<a href="<?php the_permalink() ?>"> <img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=146&w=146&zc=1" title="<?php the_title(); ?>" /></a>
<a href="<?php the_permalink() ?>">
<div class="mask size space">
<button class="btn btn-small btn-danger"><i class="icon-white"></i> Download</button>
</a>
</div>
</div>
</div>
<?php endforeach; ?>
</ul>
</div>

سپاس از شما

حالا من میخوام اون cat 3 ، متغیر باشه ، برای مثال سه cat داشته باشم 3,4,5 که با انتخاب هرکدوم ، مطالبش به نمایش در بیاد

ویرایش شده در توسط MooCHooL
0

به اشتراک گذاری این پست


لینک به پست

تست کنید

<?php get_header(); ?>

<h3>Latest Soft...</h3>

<form>

<select id="selectCAT" >

<option value="cat3">نام دسته سه </option>

<option value="cat4">نام دسته چهار </option>

<option value="cat5">نام دسته پنج </option>

<option value="all">مشاهده همه</option>

</select>

</form>

<div class="row-fluid">

<ul class="thumbnails example-sites currentCatPost" id="cat3">

<?php $recentposts = get_posts('numberposts=8&category=3');

foreach ($recentposts as $post) : setup_postdata($post); ?>

<li>

<div rel="tooltip" title="<?php the_title(); ?>" class="view size">

<div class="thumbnail isotope_item">

<a href="<?php the_permalink() ?>"> <img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=146&w=146&zc=1" title="<?php the_title(); ?>" /></a>

<div class="mask size space">

<button class="btn btn-small btn-danger" onclick="window.location='<?php the_permalink() ?>'"><i class="icon-white"></i> Download</button>

</div>

</div>

</div>

</li>

<?php endforeach; ?>

</ul>

</div>

<div class="row-fluid">

<ul class="thumbnails example-sites currentCatPost" id="cat4">

<?php $recentposts = get_posts('numberposts=8&category=4');

foreach ($recentposts as $post) : setup_postdata($post); ?>

<li>

<div rel="tooltip" title="<?php the_title(); ?>" class="view size">

<div class="thumbnail isotope_item">

<a href="<?php the_permalink() ?>"> <img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=146&w=146&zc=1" title="<?php the_title(); ?>" /></a>

<div class="mask size space">

<button class="btn btn-small btn-danger" onclick="window.location='<?php the_permalink() ?>'"><i class="icon-white"></i> Download</button>

</div>

</div>

</div>

</li>

<?php endforeach; ?>

</ul>

</div>

<div class="row-fluid">

<ul class="thumbnails example-sites currentCatPost" id="cat5">

<?php $recentposts = get_posts('numberposts=8&category=5');

foreach ($recentposts as $post) : setup_postdata($post); ?>

<li>

<div rel="tooltip" title="<?php the_title(); ?>" class="view size">

<div class="thumbnail isotope_item">

<a href="<?php the_permalink() ?>"> <img src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=146&w=146&zc=1" title="<?php the_title(); ?>" /></a>

<div class="mask size space">

<button class="btn btn-small btn-danger" onclick="window.location='<?php the_permalink() ?>'"><i class="icon-white"></i> Download</button>

</div>

</div>

</div>

</li>

<?php endforeach; ?>

</ul>

</div>

<script type="text/javascript">

$("#selectCAT").change(function() {

var catid = $(this).val();

var cats = ".currentCatPost#" + catid;

if(catid != 'all') {

$(".currentCatPost").find("li").hide("500");

$(cats).find("li").show("1500");

}

else {

$(".currentCatPost").find('li').show("500");

}

});

</script>

اگر عمل نکرد به header.php اضافه کنید


<script src="http://code.jquery.com/jquery-latest.js"></script>

کدهاتون ایرادات دیگه ای داشت که لازم بود یکی دوتاش گرفته شه گرفتم مابقیش هم به عهده خودتون چون ممکنه استایلتون رو کلا به هم بریزه

2

به اشتراک گذاری این پست


لینک به پست

بسیار سپاس.

سوال آخر اینکه چجوری میشه کاری کرد که به عنوان پیشفرض تمامی مطالب رو نشون نده؟ یعنی همون اول یه ID‌ بگیره و همون 8 مطلب رو نمایش بده.

الان تمامی موارد رو میاره

0

به اشتراک گذاری این پست


لینک به پست

شما برایب اولین مرحله باید دستی کد بدی چون کاربر که نمی تونه قبل از ورود به صفحه چیزی رو سلکت کنه یعنی

بخش تگ select


<select id="selectCAT" >
<option value="cat3" selected="selected">نام دسته سه </option>
<option value="cat4">نام دسته چهار </option>
<option value="cat5">نام دسته پنج </option>
<option value="all">مشاهده همه</option>
</select>

و بخش script:


<script type="text/javascript">
$(".currentCatPost").find("li").hide();
$(".currentCatPost#cat3").find("li").show(500);
$("#selectCAT").change(function() {
var catid = $(this).val();
var cats = ".currentCatPost#" + catid;
if(catid != 'all') {
$(".currentCatPost").find("li").hide("500");
$(cats).find("li").show("1500");
}
else {
$(".currentCatPost").find('li').show("500");
}
});
</script>

بجای cat3 عدد دلخواه را بگذارید

2

به اشتراک گذاری این پست


لینک به پست

خیلی لطف کردید ، سپاس ، مشکلم به کلی برطرف شد

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری