maral_hamidi 82 ارسال شده در دی 99 گزارش بازنشر ارسال شده در دی 99 سلام به دوستان. میتونید راهنماییم کنید که یک فیلتر جستجو بسازم؟ من یک پست تایپ و براش تکسونومی ساختم. حالا میخوام یک فیلتر جستجو بسازم که دسته ها یا همون term هارو لود کنه. ترم های موجود طبعا زیر دسته هم دارن. روش هایی که تست کردم همه دسته ها و زیر دسته ها رو باهم میشه توی یک سلکت باکس نمایش داد. میخوام دوتا سلکت باکس بگیرم که اولی دسته های مادر و دومی زیر دسته هارو نمایش بده. احتمالا باید ایجکس بشه تا وقتی دسته مادر انتخاب میشه در سلکت باکس دوم زیر دسته های مربوط به دسته انتخاب شده نمایش داده شن. منتظر همراهیتون هستم. نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در دی 99 مالک گزارش بازنشر ارسال شده در دی 99 (ویرایش شده) در 1 ساعت قبل، maraljoon گفته است : سلام به دوستان. میتونید راهنماییم کنید که یک فیلتر جستجو بسازم؟ من یک پست تایپ و براش تکسونومی ساختم. حالا میخوام یک فیلتر جستجو بسازم که دسته ها یا همون term هارو لود کنه. ترم های موجود طبعا زیر دسته هم دارن. روش هایی که تست کردم همه دسته ها و زیر دسته ها رو باهم میشه توی یک سلکت باکس نمایش داد. میخوام دوتا سلکت باکس بگیرم که اولی دسته های مادر و دومی زیر دسته هارو نمایش بده. احتمالا باید ایجکس بشه تا وقتی دسته مادر انتخاب میشه در سلکت باکس دوم زیر دسته های مربوط به دسته انتخاب شده نمایش داده شن. منتظر همراهیتون هستم. البته تو حالت ایجکس مشکلی ندارم و انجامش دادم. فقط مشکل همون بخش سلکت باکس ها و نمایش دسته و زیر دسته هاس. من با استفاده از رادیوباکس تونستم کل دسته ها رو نمایش بدم. ولی اینکه بخوام تو دو سلکت باکس مجزا دسته و زر دسته هارو جدا کنم مشکل دارم. کد مربوط به نمایش اون ترم ها با استفاده از رادیو باکس: <?php $terms = get_terms( 'type_job', array( 'hide_empty' => false, )); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){ echo '<ul>'; echo '<li><label for="radionull"><input type="radio" name="radiofilter" id="radionull" value="null">هیچکدام</label></li>'; foreach ( $terms as $term ) { echo '<li><label for="radio'.$term->term_id.'"><input type="radio" name="radiofilter" id="radio'.$term->term_id.'" value="'.$term->term_id.'">'.$term->name.'</label></li>'; } echo '</ul>'; } ?> ویرایش شده دی 99 توسط maraljoon نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در بهمن 99 مالک گزارش بازنشر ارسال شده در بهمن 99 در در ۱۳۹۹/۱۰/۲۸ در 14:31، maraljoon گفته است : با این روش تونستم همه دسته هارو یکجا نمایش بد. ولی هنوز نمیدونم چطوری بدیلش کنم به دو سلکت باکس و دسته های مادر و زیر دسته هارو از هم جدا کنم. <select name="filter_design"> <?php $category_options = array( '0' => 'همه دسته ها' ); $cats = wp_list_pluck(get_terms(array( 'taxonomy' => 'type_job', 'hide_empty' => false )), 'name', 'term_id'); $category_options = $category_options + $cats; ?> <option selected disabled hidden>انتخاب دسته بندی</option> <?php foreach($category_options as $value => $label) { echo '<option '.selected($_GET['filter_design'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>'; } ?> نقل قول لینک به ارسال
yazdaniwp 1,186 ارسال شده در بهمن 99 گزارش بازنشر ارسال شده در بهمن 99 در 7 ساعت قبل، maraljoon گفته است : با این روش تونستم همه دسته هارو یکجا نمایش بد. ولی هنوز نمیدونم چطوری بدیلش کنم به دو سلکت باکس و دسته های مادر و زیر دسته هارو از هم جدا کنم. <select name="filter_design"> <?php $category_options = array( '0' => 'همه دسته ها' ); $cats = wp_list_pluck(get_terms(array( 'taxonomy' => 'type_job', 'hide_empty' => false )), 'name', 'term_id'); $category_options = $category_options + $cats; ?> <option selected disabled hidden>انتخاب دسته بندی</option> <?php foreach($category_options as $value => $label) { echo '<option '.selected($_GET['filter_design'], $value).' value="' . esc_attr($value) . '">' . esc_html($label) . '</option>'; } ?> سلام. باید برای باکس اول چک کنید که والد داره یا نه: <select name="filter_design"> <?php $args = array( 'orderby' => 'name', 'order' => 'ASC', 'parent' => 0, ); $cats = get_categories( $args ); ?> <option value="0">انتخاب دسته بندی</option> <?php foreach( $cats as $cat ) { sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name ); } ?> </select> حالا دو حالت دارید برای نمایش فرزندها: 1- کل زیر دسته ها فارغ از اینکه چند سطح باشن رو لیست کنید: <?php $args = array( 'child_of' => 5 // آیدی دسته والد ); $cats = get_categories( $args ); ?> <option value="0">انتخاب دسته بندی</option> <?php foreach( $cats as $cat ) { sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name ); } ?> 2- فقط زیر دسته های سطح اول رو بگیرید: <?php $args = array( 'parent' => 5 // آیدی دسته والد ); $cats = get_categories( $args ); ?> <option value="0">انتخاب دسته بندی</option> <?php foreach( $cats as $cat ) { sprintf( '<option value="%s">%s</option>', $cat->term_id, $cat->name ); } ?> دیگه بخش ایجکس رو خودتون زحمتش رو بکشید فقط توجه داشته باشید که تابع sprintf رو داخل ایجکس استفاده نکنید. 5 نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در بهمن 99 مالک گزارش بازنشر ارسال شده در بهمن 99 در 14 ساعت قبل، yazdaniwp گفته است : ... دیگه بخش ایجکس رو خودتون زحمتش رو بکشید فقط توجه داشته باشید که تابع sprintf رو داخل ایجکس استفاده نکنید. سلام.ممنون از راهنماییتون متسافانه خیلی متوجه نشدم چیکار کنم. تو حالت اول فقط اومدم parent => 0 که گفتید رو به کد خودم اضافه کردم که دسته های والد رو لیست میکنه. تا اینجا مشکلی نیست. تو حالت دوم برای ایجاد یک سلکت باکس دیگه که بتونم زیر دسته هارو لیست کنم و از ایجکس استفاده کنم مشکل دارم. و نمیدونم چطور اینکارو کنم نقل قول لینک به ارسال
yazdaniwp 1,186 ارسال شده در بهمن 99 گزارش بازنشر ارسال شده در بهمن 99 در 6 ساعت قبل، maraljoon گفته است : سلام.ممنون از راهنماییتون متسافانه خیلی متوجه نشدم چیکار کنم. تو حالت اول فقط اومدم parent => 0 که گفتید رو به کد خودم اضافه کردم که دسته های والد رو لیست میکنه. تا اینجا مشکلی نیست. تو حالت دوم برای ایجاد یک سلکت باکس دیگه که بتونم زیر دسته هارو لیست کنم و از ایجکس استفاده کنم مشکل دارم. و نمیدونم چطور اینکارو کنم سلام. خواهش میکنم. برای گام اول که کلا نیازی به کد خودتون نیست. کل کد رو براتون نوشتم. برای بخش دومش هم باید با jquery روی رویداد change مربوط به select اولی، مقدار انتخابی رو بگیرید و بفرستید. بعد کد دوم یا سوم رو بذارید بدون sprintf و با یه متغیر که اطلاعات رو هر دفعه بهش اضافه کنید و در آخر خروجی رو بفرستید برای صفحه. 2 نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در بهمن 99 مالک گزارش بازنشر ارسال شده در بهمن 99 (ویرایش شده) در 9 ساعت قبل، yazdaniwp گفته است : سلام. خواهش میکنم. برای گام اول که کلا نیازی به کد خودتون نیست. کل کد رو براتون نوشتم. برای بخش دومش هم باید با jquery روی رویداد change مربوط به select اولی، مقدار انتخابی رو بگیرید و بفرستید. بعد کد دوم یا سوم رو بذارید بدون sprintf و با یه متغیر که اطلاعات رو هر دفعه بهش اضافه کنید و در آخر خروجی رو بفرستید برای صفحه. خیلی متوجه کارکرد کدی که لطف کردید نشدم. نوع تاکسونومی رو هم بهش اضافه کردم ولی اصلا دسته هارو نمایش نمیده. ویرایش شده بهمن 99 توسط maraljoon نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در بهمن 99 مالک گزارش بازنشر ارسال شده در بهمن 99 تو انجمن هم خیلی سرچ کردم و حتی سایت های خارجی. نمیدونم چرا نتونستم موردی به این سادگی رو پیدا کنم. شاید دقیقا نمیدونم چیو جستجو کنم. که دو تا سلکت باکس داشته باشم یکی دسته های مادر و با انتخاب هر دسته مادر در سلکت باکس دوم دسته های فرزند نمایان بشن. نقل قول لینک به ارسال
milad-day 40 ارسال شده در بهمن 00 گزارش بازنشر ارسال شده در بهمن 00 اتصال دو select box به یکدیگر، در جاوااسکریپت: <!DOCTYPE html> <html> <body> <h1>Two HTML-select boxes linked to each other</h1> <p>see:</p> <select id="sel1" onchange="giveSelection(this.value)"> <option value="cars">cars</option> <option value="fruit">fruit</option> </select> <select id="sel2"> <option data-option="cars">BMW</option> <option data-option="cars">Pride</option> <option data-option="cars">Benz</option> <option data-option="fruit">Banana</option> <option data-option="fruit">Apple</option> <option data-option="fruit">Orange</option> </select> <script> var sel1 = document.querySelector('#sel1'); var sel2 = document.querySelector('#sel2'); var options2 = sel2.querySelectorAll('option'); function giveSelection(selValue) { sel2.innerHTML = ''; for(var i = 0; i < options2.length; i++) { if(options2[i].dataset.option === selValue) { sel2.appendChild(options2[i]); } } } giveSelection(sel1.value); </script> </body> </html> 1 نقل قول لینک به ارسال
maral_hamidi 82 ارسال شده در بهمن 00 مالک گزارش بازنشر ارسال شده در بهمن 00 در در ۱۴۰۰/۱۱/۱۴ در 22:47، milad-day گفته است : اتصال دو select box به یکدیگر، در جاوااسکریپت: سلام.ممنون چطور میشه دسته و زیر دسته هارو نمایش داد به جای این سلکت باکس ها؟ نقل قول لینک به ارسال
milad-day 40 ارسال شده در بهمن 00 گزارش بازنشر ارسال شده در بهمن 00 زنده باشید چیزی که من براتون قرار دادم، بخشی از راه حل این مسئله هستش که به کدنویسی js مربوط میشه. مسئله شما سه بخش داره: 1) ایجاد داده های اولیه مورد نیاز بوسیله پرسمان سفارشی 2) ایجاد رابط کاربری تعاملی (کدهایی که من نوشتم) 3) ارسال درخواست AJAX و پیاده سازی نمایش داده های برگشتی نقل قول لینک به ارسال
هادی خانزاده 102 ارسال شده در بهمن 00 گزارش بازنشر ارسال شده در بهمن 00 در در ۱۴۰۰/۱۱/۲۱ در 13:38، maral_hamidi گفته است : سلام.ممنون چطور میشه دسته و زیر دسته هارو نمایش داد به جای این سلکت باکس ها؟ به نظرم کارتون خیلی آسون تر از این حرفاست. ولی تو این تاپیک پیچیده شده. ی بار دیگه منظورتون رو توضیح بدین و کدهایی هم که تا حالا نوشتین و قرار بدین تا راحت تر بتونیم راهنمایی کنیم. موفق و پیروز باشید. نقل قول لینک به ارسال
Mobin 1,669 ارسال شده در 11 تیر گزارش بازنشر ارسال شده در 11 تیر ببینین شما اول باید لیست دسته های والد اصلی رو نشون بودین همنطور که دوستان گفتن با مقدار parent=>0 خب حالا با انتخاب هر ایتم باید با ajax یه درخواست بفرستین به admin-ajax.php که این دسته بندی با ایدی X انتخاب شد حالا شما تو کد ajax تون باید لیست زیر دسته اون دسته X رو میفرستین و تو سلکت باکش دوم نمایش میدین نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .