رفتن به مطلب

ساخت فیلتر مرتب سازی ایجکسی برای پست تایپ خاص


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

درود مجدد

 

یه چک باکس بسازید.

میتونید از نمونه زیر استفاده کنید.

<html lang="fa-IR" dir="rtl">
<head>
</head>
<body>
<label for="filter-view">مرتب سازی بر اساس بازدید</label>
<input type="checkbox" id="filter-view">
<script>
document.querySelector("#filter-view").addEventListener("change", function() {
	
	if(this.checked)
		alert("Checked");
	
});
</script>
</body>
</html>

 

موفق باشید

لینک به ارسال
در در 12/14/2017 at 01:15، mehran-b گفته است :

 

سلام.

ببخشید. متوجه نشدم چطور باید چک باکسرو به ایجکس و اون صفحه ای که کدهای این فیلتر مورد نظر رو گذاشتم متصل کنم؟

لینک به ارسال

درود مجدد

 

کد مربوط به چک باکس

<label for="filter-view">مرتب سازی بر اساس بازدید</label>
<input type="checkbox" id="filter-view">

کد AJAX

<script>
  $(document).ready(function(){
    $("#filter-view").change(function(){
	  if(this.checked) {
      $.ajax({
        type : "GET",
        url : "<?php echo home_url('/'); ?>",
        data : {
          do : 'filterview'
        },
        beforeSend : function() {
          $("#loading").fadeIn(); // show loading
        },
        success : function(response) {
          $('#result').html(response); // change result
          $("#loading").fadeOut(); // hide loading
        }
      });
	  }
    });
  });
</script>

کد مربوط به فایل functions.php

add_action('template_redirect', function() {
    if(isset($_GET['do']) && $_GET['do'] == "filterview") {
		add_filter('template_include', function() {
            return get_template_directory() . '/filterview.php';
        });
    }
});

کد مربوط به فایل filterview.php

$args = array(
	'posts_per_page' => 10,
	'post_status' => 'publish',
	'ignore_sticky_posts' => 1,
	'post_type' => 'design',
	'meta_key' => 'the_views',
	'order' => 'DESC',
	'orderby' => 'meta_value_num'
);
$myposts = new WP_Query($args);
if(!$myposts->have_posts()) {
	echo "پستی وجود ندارد";
	exit;
}
while ( $myposts->have_posts() ) {
  $myposts->the_post(); ?>
	<div class="col-md-3 col-sm-3 col-xs-3 clearfix">
		<div class="box">
			<div class="image clearfix">
				<?php the_post_thumbnail(''); ?>
			</div>
			<h2 class="posttitle"><?php the_title(); ?></h2>
		</div>
	</div>
<?php }
wp_reset_postdata();

 

موفق باشید

لینک به ارسال
در 2 ساعت قبل، mehran-b گفته است :

 

ممنونم ازتون.عالی بود :wub::):):):)

بابت مورد قبلی هنوز نتونستم مشکل رو پیدا کنم. غیر از این کدی که نوشتید راه دیگه ای نیست که از یک عدد تا یک عدد دیگه مثلا(1تا-5 ) رو توسط ایجکس فیلتر کرد؟

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

لینک به ارسال
در 9 ساعت قبل، maraljoon گفته است :

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

در مورد این قضیه کد از نظر من مشکلی نداره.

دسترسی برام ارسال کنید خودم تست کنم.

لینک به ارسال
در 4 ساعت قبل، mehran-b گفته است :

در مورد این قضیه کد از نظر من مشکلی نداره.

دسترسی برام ارسال کنید خودم تست کنم.

سلام مجدد..

تشکر

اصل قالبی که دارم میسازم رو لوکاله. ولی این بخش مورد نظر رو توی یکی از هاست هام آنلاین میکنم دسترسی میفرستم براتون.

بازم ممنونم بابت همراهیتون.

لینک به ارسال
نقل قول

سلام مجدد

درود مجدد

 

نقل قول

تشکر

خواهش میکنم.

نقل قول

اصل قالبی که دارم میسازم رو لوکاله. ولی این بخش مورد نظر رو توی یکی از هاست هام آنلاین میکنم دسترسی میفرستم براتون.

بازم ممنونم بابت همراهیتون.

مشکل موردنظر مرتفع شد.

 

موفق باشید

لینک به ارسال
در 19 ساعت قبل، mehran-b گفته است :

 

سلام. سپاس گزارم.

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

یک سوال در مورد کد زیر دارم. تو کد زیر شما از fadein و fadout استفاده کردید که مثلا برای #loading بعد از ارسال ایجکس این اتفاق میفته.

اگه بخوایم وقتی چک باکس از حالت انتخاب در میاد یک div با آیدی خاص نمایش داده بشه(از قبل تو css مخفیش کردم)  باید چیکار کرد؟

نمیخوام مثل  fadein و fadout لحظه ای ظاهر بشه و بعد مخفی بشه. وقتی نمایان میشه دائمی باشه تا وقتی که دوباره چک باکس انتخاب بشه.

<script>
  $(document).ready(function(){
    $("#filter-view").change(function(){
	  if(this.checked) {
      $.ajax({
        type : "GET",
        url : "<?php echo home_url('/'); ?>",
        data : {
          do : 'filterview'
        },
        beforeSend : function() {
          $("#loading").fadeIn(); // show loading
        },
        success : function(response) {
          $('#result').html(response); // change result
          $("#loading").fadeOut(); // hide loading
        }
      });
	  }
    });
  });
</script>
ویرایش شده توسط maraljoon
لینک به ارسال

درود مجدد

 

نقل قول

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

بخشی از کد رو به صورت کلی تغییر دادم.

با مقایسه کد قبلی با کد جدید متوجه تغییرات میشید.

نقل قول

اگه بخوایم وقتی چک باکس از حالت انتخاب در میاد یک div با آیدی خاص نمایش داده بشه(از قبل تو css مخفیش کردم)  باید چیکار کرد؟

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

<script>
$("#filter-view").change(function() {
	
	if(!this.checked)
		$("div").fadeIn();
	else
		$("div").fadeOut();
	
});
</script>

 

موفق باشید

لینک به ارسال
در 9 ساعت قبل، mehran-b گفته است :

 

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


<script>
$("#filter-view").change(function() {
	
	if(!this.checked)
		$("div").fadeIn();
	else
		$("div").fadeOut();
	
});
</script>

 

ممنونم از لطفتون.. واقعا خیلی چیزا یاد گرفتم ازتون

از fadein و fadeout استفاده کرده بودم ولی کار نمیکرد. این کد آخری رو که گذاشتید فهمیدم حرف I و O  رو باید بزرگ بنویسم. من حروف کوچیک نوشته بودم. فکرشو نمیکردم فرقی کنه. عجیب بود برام.

لینک به ارسال

سلام مجدد.

چطور میشه تو کد زیر که رادیو باکس هاروساختیم ، این رادیوباکس هارو به هم مرتبط کنیم. در حال حاضر وقتی هرکدوم انتخاب میشه مطالب مربوط به رادیو باکس انتخاب شده رو نشون میده. من اومدم رادیو باکس رو تغییر دادم به چک باکس. حالا اگه بخوام مثلا تو 10 تا چک باکسی که هست یک انتخاب اشتراکی بذارم چیکار باد بکنم؟

وقتی چک باکس ها انتخاب میشن(اگه چند مورد انتخاب بشه) مطالبی رو نمایش بده که چک باکس های انتخاب شده توشون مشترک باشه

ممنون.

لینک به ارسال

درود مجدد

 

احساس میکنم تاپیک فقط مثل یک جلسه پرسش و پاسخ شده و روی عملکرد کدهای ارسال شده اصلا دقت نمیشه.

بنده در این تاپیک حجم زیادی از اطلاعات رو در اختیار شما و سایر دوستان قرار دادم با اطلاعاتی که بهتون دادم باید بتونید خودتون جواب سوال آخرتون رو البته با تامل در کدهای قبلی ای که براتون ارسال کردم پیدا کنید.

 

موفق باشید

لینک به ارسال
در 52 دقیقه قبل، mehran-b گفته است :

 

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

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

پوزش بابت وقتی که گرفتم.

بازم ممنونم از همراهیتون.

لینک به ارسال

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

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

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

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

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

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

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

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

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