alitna

اضافه کردن اینپوت در تنظیمات قالب

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

سلام دوستان

من مدتی هست که دارم برای قالب های وردپرسم ، تنظیمات میزنم .

ولی یه مشکلی دارم .

برای یکسری از آپشن ها نمیشه تعداد مشخصی گذاشت و باید توسط خود کاربر ایجاد و یا حذف بشه .

با جی کوئری تونستم اینپوت اضافه کنم ، یعنی با کلیک میاد اینپوت رو اضافه میکنه .

ولی مشکلی که دارم ، اینه که اونا سیو نمیشن و همینطور مقدارشون رو برای چاپ نمیتونم بگیرم .

0

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


لینک به پست

شما برای اون ها باید آرایه ایجاد کنید و با استفاده از حلقه هم چاپشون کنید

در مورد موردی که مشکل دارید بیشتر توضیح بدهید تا عرض کنم

0

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


لینک به پست

ممنون از پاسختون

توسط کد زیر المنت مورد نظر رو تعریف میشه :


$options[] = array( "name" => __('<h3 class="heading">لینک دوستان<h3>','framework_localize'),
"desc" => "",
"id" => $shortname."_linkfriend",
"std" => "",
"type" => "addboxis");

و بعد طبق دستور case که نوع کد بالا addboxis هست میاد این رو اجرا میکنه :


case 'addboxis':
$val = $value['std'];
$std = get_option($value['id']);
if ( $std != "") { $val = $std; }
$output .= '<div id="thisokenter"></div><input class="of-input '.$value['classltr'].'" placeholder="'.$value['plhd'].'" name="'. $value['id'] .'" id="'. $value['id'] .'" type="'. $value['type'] .'" /><div id="add-boox">Add New</div>';
break;

و بعد طبق دستور جی کوئری که خارج از این کد ها توی صفحه تعریف شده ، با کلیک روی add-boox میاد یک اینپوت مثل کد بالا رو ایجاد میکنه و یک عدد به آیدی اینپوت اضافه میکنه .

ولی همه اینا درست کار میکنه و اینپوت هارو با آیدی های مختلف ایجاد میکنه ، ولی تنها مشکل اینه که بعد از سیو کردن تنظیمات ، و رفرش صفحه ، اینپوت ها از بین میرن .

اگه خواستین فایل هارو براتون پ.خ کنم تا چک کنید ..

0

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


لینک به پست

کدتون رو نگا نکردم. اما با جی کوئری وقتی دارید می سازید ، می تونید یه آی دی متغیر و یه کلاس ثابت بهش بدید که آی دی برابر با تعداد اینپوت های های قبلی با اون کلاس ثابت به علاوه یک هست. حالا می تونید به راحتی روشون مانور بدید و کار انجام بدید :)

0

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


لینک به پست

بله ، با جی کوئری همین کار رو انجام دادم ، ولی متاسفانه وقتی به وجود میان و مقدار میدم بهشون و تنظیمات رو ذخیره میکنم ، اون اینپوت هایی که اضافه کردم ، ذخیره نمیشن ..

0

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


لینک به پست

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

نمونه

1. فرم


<form action="" method="post">
<input type="button" id="addnew" value="Add New">
<input value="0" name="num" type="hidden" >
<div class="fields-group"></div>
<input type="submit" value="submit" >
</form>

2. جی کوئری


$(document).ready(function() {
$("#addnew").click(function() {
var num = $(this).next("input").val();
var newnum = parseInt(num)+1;
var newinput = '<input type="text" name="my_field_'+num+'" id="my-field-'+num+'"><br />';
$(newinput).appendTo(".fields-group");
$(this).next("input").val(newnum);
});
})

3.

اکشن


<?php if(isset($_POST['num'])) {
$num = $_POST['num'];
for($x = 0; $x<$num; $x++) {
$main = 'my_field_'.$x;
$field = $_POST[$main];
add_option($main, $field)
}//close for
}
?>

1

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


لینک به پست

ارسال شده در (ویرایش شده)

بازم ممنون .

فقط از کد php خط 7 ارور میده ..

ولی قبل از اینکه کد php رو بذارم ، وقتی روی submit کلیک میکنم ، تنظیمات رو سیو میکنه ...

در کل بازم اینپوت ها نمیمونن و پاک میشن .

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

سورس html صفحه رو هم نگاه میکنم ، فرم اصلی که ایجاد کردیم ، نیست . به این صورته:


<div class="controls">
<input type="button" value="Add New" id="addnew">
<input type="hidden" name="num" value="0">
<div class="fields-group"></div>
<input type="submit" value="submit"><br>
</div>

به نظر من کدی باید باشه که بشه اینپوت هارو گرفت و همراه با فرم اصلی به دیتابیس وردپرس فرستاد .

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

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


لینک به پست

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

اینجوری مشکل کمتری داره به نظرم.

2

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


لینک به پست

ارسال شده در (ویرایش شده)

ببخشید ، منضورم اسپم نیست ولی نوشته بالا خیلی طولانی شد .

کمی کار کردم به این نتیجه رسیدم :

با این کد میام محتویات رو اضافه میکنم :


$options[] = array( "name" => __('','framework_localize'),
"desc" => __('','framework_localize'),
"id" => "linkimagelogo",
"std" => "",
"type" => "ccccc");

حالا اینپوتی سیو میشه توی دیتابیس که name داشته باشه و توسط value مقدار وارد شده چاپ بشه :


$val = $value['std'];
$std = get_option($value['id']);

<input name="'. $value['id'] .'" type="text" value="'. $val .'"/>

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

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

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


لینک به پست

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

اینجوری مشکل کمتری داره به نظرم.

این راه دوم توی ذهنم بود ، ولی این راه هم بازم یه مشکل داره که وقتی با یه دکمه از هیدن در میاد ، با رفرش دوباره ، دوباره دستور هیدن برای همون اینپوت ها اجرا میشه و دوباره مخفی میشن .

0

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


لینک به پست

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

0

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


لینک به پست

هرجایی قرار میدم این ارور رو میده .


Parse error: syntax error, unexpected '}' in D:\wamp\www\abc\wp-content\themes\ABC\admin\admin-interface.php on line 109

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

مشکل اینه که کد html تا وقتی درون form قرار داره ، دیگه اینپوت اصلی برای سیو کردن تظنظیمات کار نمیکنه و وقتی سورس کد رو نگاه میکنم ، اصلا form وجود نداره ...

0

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


لینک به پست

کد را که نباید قرار بدید اون کد نمونه است شما مگه پنل تنظیمات نساختی در کدهای پنل تنظیماتت یک فرم داری دو تا فیلد html را در اون فرم می گذاری و اون فرم یک اکشن داره کدهای php را در صفحه ی اکشن و کدهای js را هم در یک فایل js و با کد


<script src="<?php bloginfo('template_directory');?>/script.js"></script>

به صفحه ی تنظیمات معرفی می کنی

این اروری که گذاشتید مال اینه که من یادم رفت انتهای کد را ببندم


add_option($main, $field)

را به


add_option($main, $field);

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

0

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط sadra1813
      سلام و خسته نباشید. من برای گالری ام، پیوند پوسته رو انتخاب کردم. ولی روی بعضی از عکسا که میزنم، ارور زیر رو می ده:
      Catchable fatal error: Object of class WP_Error could not be converted to string in C:\xampp\htdocs\wp-content\themes\tech-literacy\includes\template-tags.php on line 287
      چیکار کنم تا همه عکسام درست برن تو صفحه خودشون؟
       
    • توسط pouyamahmoudi
      با عرض سلام ، وقت بخیر و خسته نباشید
      قالب وردپرس من با وجود واکنش گرا بودن در نسخه موبایل یک مشکل داره 
      مشکل اینه که به صورت یه صفحه خالی با رنگ پس زمینه سایت میاد و باید صفحه رو بکشم به سمت راست تا محتویات نمایش داده بشه 
      لطفا جهت حل این مشکل راهنمایی کنید
      با سپاس

    • توسط arianemun
      سلام عرض ادب به کاربران وردپرس پارسی ، من یک مشکلی دارم در افزونه ای ، افزونه woocomerce product finder یک افزونه ای است طبق تنظیمات و چیز هایی که برای محصول ووکامرسی تعریف میکنیم با انتخواب گزینه ها توسط کاربر محصول مورد نظر خودش رو پیدا میکنه، تنها مشکلی که این افزونه یا میشه گفت ضعفی که داره تفاوت محصول برجسته رو با محصول ساده متوجه نمیشه یعنی اگر تو اون دسته یک محصول برجسته باشه و یک محصول ساده اون ها رو از هم تفکیک نمیکنه من میخواستم این قابلیت رو به این افزونه اضافه کنم که کاربر وقتی محصولش رو پیدا کرد هم محصول ساده ها رو ببینه و محصول برجسته شده ! ممنون میشم کمک کنید .
       
      لینک افزونه استفاده شده
    • توسط reza_yki
      سلام من ابزارکی نوشتم که کاربر بتونه به وسیله select option به صورتی multi بتونه چندین دسته رو انتخاب کنه همه چیز درست و بدون مشکل کار میکنه فقط یه مشکل هست اونم اینه که وقتی ابزارک رو برای اولین بار فعال میکنی خطای زیر رو میده وباید یه دونه دسته رو انتخاب و ذخیره کنی تا ابزارک به صورت صحیح کارکنه لطفا راهنماییم کنید.
      Warning: in_array() expects parameter 2 to be array, string given in E:\Program Files\xampp\htdocs\wordpress\wp-content\themes\mymag\functions\widgets\widgets.php on line 29  
      اینم سورس کد:
      <?php public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'عنوان ابزارک', 'text_domain' ); $args = array( 'hide_empty' => 0, 'type' => 'post', 'taxonomy' => 'category', 'orderby' => 'name', 'hierarchical' => true, ); $cats = get_categories( $args ); $instance['cat_id'] = isset( $instance['cat_id'] ) ? ( $instance['cat_id'] ) : '1'; $count_cat = isset ($instance['cat_id']) ? count($instance['cat_id']) : '1' ; $tab_number = isset( $count_cat ) ? absint( $count_cat ) : 1; ?> <p> <label for="<?php echo $this->get_field_name( 'title' ); ?>"><?php _e( 'Title:' ); ?></label><br> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('tab_number'); ?>"><?php _e( 'تعداد زبانه:'); ?></label><br> <input id="<?php echo $this->get_field_id('tab_number'); ?>" name="<?php echo $this->get_field_name('tab_number'); ?>" type="number" min="0" class="my_widget_number" value="<?php echo $tab_number; ?>" size="3" /> </p> <label for="<?php echo $this->get_field_name( 'cat_id' ); ?>"><?php _e( 'انتخاب دسته بندی : ' ); ?></label> <select id="<?php echo $this->get_field_id( 'cat_id' ); ?>" name="<?php echo $this->get_field_name( 'cat_id[]' ); ?>" multiple="multiple" style="width: 100%; margin: 10px auto; height: auto;"> <?php foreach( $cats as $cat ): ?> <option value="<?php echo esc_attr(__($cat->term_id)); ?>"<?php selected(in_array($cat->term_id, $instance['cat_id'])); // selected($cat->term_id,$cats_id) ?>><?php echo esc_attr(__($cat->name)); ?></option> <?php endforeach; ?> </select> <p> <input type="text" value="<?php echo esc_attr(__(implode(',', $instance['cat_id']))); ?>"> </p> <?php }  
    • توسط سعید فرزادی پور
      با عرض سلام
      من به مشکلی خوردم که راه حل اون رو نمیدونم
      در هدر سایت یک نویگیشن بار دارم که منوی اصلی سایتم به صورت دراپ داون در این نویگیشن بار وجود داره ، قال سایت من shaply هستش و استفاده از ویجت ها در body بازه ، من با استفاده از یک ویجت اسلایدر در بالاترین قسمت و زیر هدر سایت که ارتفاع اونم 55 پیکسل هستش اسلایدر بزرگ ایجاد کردم ، و حالا زمانی که میرم روی دراپ داون ها متاسفانه تا قبل از اسکرول کردن به پایین ، زیر منو ها به زیر اسلایدر میرن ، اما بعد از اسکرول کردن به پایین این مشکل حل شده و منو ها و زیر منو ها نمایش داده میشن ، هرچه z-index رو افزایش دادم نتیجه ای نداشت ، چطور میتونم این مشکل رو حل کنم ؟
      و سوال دوم این که در این تم منو ها اول به پایین و بعد به راست باز میشن و من میخوایم سایت رو به صورت فارسی داشته باشم و میخوام اول به پایین و بعد به چپ باز بشن منو ها , چه تغییری میتونم در css ایجاد کنم ؟