alitna

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

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

سلام دوستان

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

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

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

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

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

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


لینک به پست

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

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

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


لینک به پست

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

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


$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 میاد یک اینپوت مثل کد بالا رو ایجاد میکنه و یک عدد به آیدی اینپوت اضافه میکنه .

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

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

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


لینک به پست

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

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


لینک به پست

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

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


لینک به پست

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

نمونه

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

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


لینک به پست

بازم ممنون .

فقط از کد 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

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


لینک به پست

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

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

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


لینک به پست

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

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

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


$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

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


لینک به پست

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

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

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

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


لینک به پست

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

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


لینک به پست

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


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

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

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

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


لینک به پست

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


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

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

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


add_option($main, $field)

را به


add_option($main, $field);

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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط MahTV
      سلام دوستان و اساتید عزیز
      اگه بخوایم به صورت شرطی (کوچک بودن صفحه نمایش ) تو موبایل یک باکس رو (مثل باکس دانلود) به کاربر در حالت چرخش صفحه نشون بدیم 
      و به کاربر بگیم که برا دیدن لینک ها باید گوشی موبایلت رو بچرخونی باید چیکار کنیم ؟
       
      من این کد رو از سایتی برداشتم ولی نمیدونم چطور باید ازش استفاده کنم 
      <div class="alerta"><b class="icon-screen-rotation"></b><p style="text-align: center;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">برای دیدن لینکهای دانلود ، موبایل خود را بچرخانید . دقت کنید گزینه اسکرین روتیشن یا چرخش صفحه در دستگاه شما روشن باشد </span></p></div>  
       
       
       
       
    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط armakcell
      سلام ، بنده یک مشکل خیلی بزرگ دارم اگر به بنده کمک کنید واقعا مدیون شما میشم
      بنده افزونه سئو را در وردپرس نصب کرده ام و اما هویت گوگل وقتی کد را میفرستد و بنده میزنم میگوید نمایه وجود ندارد
      فایلی را آپلود میکنم ببینید متوجه مشکل بنده میشید
    • توسط yasmohamadi
      سلام
      دوستان یه صفحه مستقل می خوام بسازم توی وردپرس که بتونه دسترسی به دیتا بیس رو هم براش فراهم کنم . اما وقتی تمام این موارد رو که توی عکس هست رعایت می کنم قالب رو برام نمی آره که بتونم انتخابش کنم .