جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
کد تخفیف اسنپ تاکسی با 50% تخفیف! دریافت کد
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

نامگذاری name ها مرتب سازی شده در آرایه ها


0
0
857

من یه فرم ویرایش فیلترها شبیه زیر دارم

نمون یک

که من اینطوری نامگذاری کردم

توضیح تصویر

یکی از دوستان برنامه نویس میگه این اشتباه است و یه تصویری به من داد این است 'گفته بود باید اینطوری بزنی

توضیح تصویر

اون دکمه + هم باید یه data-key بدی بهش وقتی روش کلیک میشه اون data-key رو چک کنی و ب نسبت اون اسم و ایدی و ... اینپوتت رو ست کنی و بعد اینپوت رو اضافه کنی به DOM

مثلا button data-key=0

وقتی روش کلیک شد اونتشو تو js باید listen کنی و دیتا رو بگیری یه اینپوت ایجاد کنی ک اسمش filter[0][value][] باشه حالا اگه دیتا ۱۰ بود باید تو ساخت اینپوت هم ۱۰ بزاری اینطوری داینامیک میشه

سایر طراحی-وب لاراول
ویرایش شده در 3 سال قبل
سوال شده در Mahmoud Khosravi
138 امتیاز


اگه سوال صرفا اینه که ساختار فعلی شما برای اینپوت ها درسته یا نه، باید بگم از نظر من هم درست نیست و اون مدلی که دوستتون گفتن صحیحه. چر که توی مدل شما، مثلا دوتا filters[1][value][] وجود داره و وقتی دارید مقدارهاش رو با js میگیرید مشخص نمیتونید مطمین باشید که این مقدار متعلق به کدوم اینپوت هست. ــ ساناز رضایی در 3 سال قبل

خب چطوری میتونم داخ حلقه foreach عملی را انجام بدم؟ ــ Mahmoud Khosravi در 3 سال قبل

من متوجه نمیشم، چرا این همه تو در تو؟! کافی نیست فقط اسم هر فیلد رو بگذارید؟ مثلا filter[n]['fa_name'] یا filter[n]['en_name'] ؟ (شایان ذکره که n یک عدد صحیح است از 0 به بالا) ــ سعید مرادی در 3 سال قبل
1
@ساناز.رضایی چرا فکر میکنید مدلی که دوستشون گفته صحیحه؟ چرا باید key های تو در تو ایجاد کرد؟ اینجوری توی loop عدم یکپارچگی ایجاد میشه. بجای [english][name] خیلی بهتره که [en_name] نوشته بشه که در همون لایه ای (تک لایه ای بودن) که سایر اینپوت ها هستن باقی بمونه. همچنین دلیل اون [] خالی رو که در انتهای آرایتون هست رو متوجه نمیشم. ــ سعید مرادی در 3 سال قبل

@سعید.مرادی بله با نظرتون موافق هستم از منظر Integration یا همون یکپارچگی، بهتره که تمام آرایه 2 عمق داشته باشه، یعنی یه چیزی مثل همون چیزی که فرمودید filter[n]['fa_name'] ــ ساناز رضایی در 3 سال قبل

@Mahmoud.Khosravi اگه بخواید با اون روشی که دوستتون گفتن پیش برید، 2 تا حلقه تو در تو نیاز دارید. ــ ساناز رضایی در 3 سال قبل

@ساناز.رضایی بله میخوام همون چیزی که دوستم گفته پیش برم ممنون میشم از کدی که در بالا گزاشتم جایگزین کنید. همچنین از جمله ی (اون دکمه + هم باید یه data-key بدی ...... )تا آخر خط (..........اینپوت هم ۱۰ بزاری اینطوری داینامیک میشه) هم دوستم گفته بود ممنون میشم پایخی را در این پست قرار بدبد از همه کدهام ــ Mahmoud Khosravi در 3 سال قبل

براتون یک پاسخ نوشتم و یک نمونه simplified هم ضمیمش کردم. ــ ساناز رضایی در 3 سال قبل

500 کاراکتر باقی مانده

1 جواب

1

ببینید کد شما یک مقدار بهم ریخته هست و ظاهرا از template engine استفاده شده (فکر میکنم blade هست) و خیلی نمیتونم کد شما رو دستکاری بکنم. ولی طبق سوالتون، مدلی که من همچین مواقع پیاده سازی میکنم به این شکل هست:

بخش HTML

<div class="container">

  <div class="section">
    <input type="text" data-key="1" placeholder="name" />
    <input type="text" data-key="1" placeholder="brand" />
  </div>

  <br />
  <button id="add">Add +</button>
  <hr />
  <button id="submit">Submit</button>
</div>

بخش JavaScript (jQuery)

// To add a new section
$("#add").on("click", function(){
    var section = $(".section:last").clone();
    section.find("input").each(function(){
        var data_key = $(this).attr('data-key');
       $(this).attr('data-key', Number(data_key) + 1);
    })
  section.insertAfter(".section:last");
})

$("#submit").on("click", function(){
    $(document).find("input").each(function(){
        var t = $(this);
        console.log(t.attr("placeholder") + "-" + t.attr("data-key") + " : " + t.val());
  })
})

اینم یک مثال اجرایی از نمونه کد بالا

لطفا بررسی کنید اگر سوالی داشتید بپرسید. امیدوارم که به دردتون بخوره. این نکته هم بگم که برای اینپوت ها میتونید اتریبیوت name رو هم ست کنید که اگه خواستید با مدل .serialize() دیتا رو سمت سرور بفرستید روند به درستی پیش بره.

ویرایش شده در 3 سال قبل
جواب داده شده در ساناز رضایی
1366 امتیاز

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


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

تبلیغات توضیحی


عرشیان از کجا شروع کنم ؟
تغییر و تحول با استاد سید محمد عرشیانفر

تبلیغات تصویری


کپی