رفتن به مطلب

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


Mesmaili

پست های پیشنهاد شده

درود دوستان.

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

حالا میخوام یه کادری ، نوشته یا هرچی دیگه کنار اون بخش بذارم به عنوان : نرم افزار پارسی - نرم افزار ... که هرکی روی نرم افزار پارسی زد ، اون مطالب فراخوانی شده توی همون صفحه نرم افزارهای پارسی رو فقط به نمایش در بیاره ! همون 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; ?>

لینک به ارسال

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

لینک به ارسال

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

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

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

لینک به ارسال

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

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

لینک به ارسال

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

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

لینک به ارسال

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

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

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

- نرم افزار

-- کامل

-- پرتابل

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

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

لینک به ارسال

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

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

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

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

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

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

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

لینک به ارسال

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

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

لینک به ارسال

با 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>

لینک به ارسال

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

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

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

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

لینک به ارسال

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

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

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

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

لینک به ارسال

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


<?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
لینک به ارسال

تست کنید

<?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>

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

لینک به ارسال

بسیار سپاس.

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

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

لینک به ارسال

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

بخش تگ 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 عدد دلخواه را بگذارید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...