رفتن به مطلب

ذخیره اطلاعاتی که به صورت پویا درج شده


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

سلام دوستان

اولا عذرخواهی به خاطر این عنوان که ممکنه زیاد حق سوال رو عدا نکنه!

و حالا سوال:

من الان دو تا select دارم:

post-849-0-48670300-1362579413_thumb.jpg

که می خوام از طریق یک فرم:

post-849-0-25274400-1362579514_thumb.jpg

که فیلدهاش هم بر اساس نوع پرداخت متغیر هست اطلاعات رو بهش اضافه کنم.

حالا دو تا مشکل دارم:

- چطوری با کلیک روی افزودن اطلاعات رو به select اضافه کنم که بعدا هم خواستم پردازشش کنم، فیلدهای وارد نشده رو بشه تشخیص داد؛ هر کدوم رو که خواست ویرایش کنه؟ (یعنی: مثلا بانک رو وارد نکرد، توی ویرایشش بشه فهمید بانک رو وارد نکرده و مثلا مبلغ پرداختی توی فیلد بانک وارد نشه.)

- چطور این اطلاعات رو در دیتابیس ذخیره کنم؟ (که اینجا هم مشکل تشخیص فیلدهای وارد نشده هم مطرحه چون هر فیلدی که وارد شده باید در ستون خودش در جدول ذخیره بشه دیگه!)

البته همه با جی کوئری.

سپاس!

ویرایش شده توسط Anisi
لینک به ارسال

در مورداول باید validate کنید.


http://docs.jquery.com/Plugins/Validation
http://www.webreference.com/programming/javascript/jquery/form_validation/index.html

برای مورد دوم هم میتونی از get یا post جی کوئری استفاده کنید:


http://api.jquery.com/jQuery.post/
http://api.jquery.com/jQuery.get/

لینک به ارسال

در مورداول باید validate کنید.


http://docs.jquery.com/Plugins/Validation
http://www.webreference.com/programming/javascript/jquery/form_validation/index.html

برای مورد دوم هم میتونی از get یا post جی کوئری استفاده کنید:


http://api.jquery.com/jQuery.post/
http://api.jquery.com/jQuery.get/

ممنون

ولی فکر کنم منظورم رو بد رسوندم!

ولی نمی دونم دیگه چطوری بگم!

با یه مثال دیگه بگم. توی دریم ویور اگر دیده باشید توی اضافه کردن آیتم به select یه قسمت داره به اسم list values، روی علامت + کلیک کنید درجا می تونید یه عنصر توی لیست بذارید. حالا منم می خوام همین کارو بکنم؛ نه ولیدیت کردن فرم!

در مورد دومی می خوام وقتی کاربر همه لیست رو به طور کامل وارد کرد، همه فرم با هم ذخیره بشه.

همین.

لینک به ارسال

در مورد اول می تونید از تابع append استفاده کنید. مقادیر html مربوط به المان جدید رو در یک متغیر ریخته و بعد append کنید.

در مورد دوم هم بایدشرطی رو قرار بدید که خالی نبودن المان ها بررسی بشه. اگر input هستن باید val رو بررسی کنید و بعد بررسی کنید اگر focus از المان آخر رفت فرم ذخیره بشه.

لینک به ارسال

ممن

در مورد اول می تونید از تابع append استفاده کنید. مقادیر html مربوط به المان جدید رو در یک متغیر ریخته و بعد append کنید.

در مورد دوم هم بایدشرطی رو قرار بدید که خالی نبودن المان ها بررسی بشه. اگر input هستن باید val رو بررسی کنید و بعد بررسی کنید اگر focus از المان آخر رفت فرم ذخیره بشه.

ممنون

تا اینجاش رو تفریبا می دونستم ولی مشکل اینه که همه فیلدا ضروری نیستن!

ممکنه یکی رو وارد کنه و دومی رو نه.

تصمیم گرفتم هرکدوم رو که وارد کرد، توی یه آرایه دو بعدی بریزم. که بعد اول المان هایی که تا حالا وارد شده رو مشخص کنه و بعد دوم، کلیدی باشه با نام اینپوت. که اگر یکی رو خالی گذاشت چک کنم مثلا کلید name آرایه از بعد مثلا 3 خالی هست یا نه. اگر بود یعنی اسم پر نشده. بعدا هم خواستم توی دیتابیس ذخیره کنم راحت میشه. این راه حل خوبه؟!!

ولی مشکل اینه که با آرایه ها توی جاوااسکریپت و جی کوئری کگار نکردم.

لینک به ارسال

خوب چرا آرایه دو بعدی؟

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

اصلا نیاز به ارایه ندارد.

لینک به ارسال

خوب چرا آرایه دو بعدی؟

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

اصلا نیاز به ارایه ندارد.

خوب بعدش که می خوام توی دیتابیس ذخیره کنم، دوباره باید از المانی که این موارد رو توش وارد کردم بگیرم دیگه، مثلا یک select که 5 تا مورد توش ذخیره شده. حالا اگر مثلا نام رو وارد نکرده من چطور تشخیص بدم نام وارد نشده و توی کوئری خالی بذارمش؟

لینک به ارسال

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


var name = $("input").val();
if(name.length ){.....}

یا

if( $("input").val() ) {.....}

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

هم میتونید ارسال پست رو بصورت تابع کنید.

بعد اگر یکی از مقادیر لازم خالی بود تابع return false بشه.

لینک به ارسال

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


var name = $("input").val();
if(name.length ){.....}

یا

if( $("input").val() ) {.....}

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

هم میتونید ارسال پست رو بصورت تابع کنید.

بعد اگر یکی از مقادیر لازم خالی بود تابع return false بشه.

آخه اینا برای validate فرم هست! من مشکلم نگه داری اینها و بعدا ذخیره کردن در دیتابیس هست. لازم هست با یه مثال بگم.

لینک به ارسال

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

شما هم که قرار با جی کوئری ارسال کنید پس ریلود نداریم.

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

حالا اگر مشکل چیز دیگه ایی هست بگید.

لینک به ارسال

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

شما هم که قرار با جی کوئری ارسال کنید پس ریلود نداریم.

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

حالا اگر مشکل چیز دیگه ایی هست بگید.

آخه اطلاعات قرار نیست در فرم باقی بمونه.

قراره کاربر تعداد زیادی اطلاعات مشابه رو با همین فرم وارد کنه و با کلیک روی دکمه افزودن، این اطلاعات به یک select اضافه بشه و بعدا بشه این اطلاعات اضافه شده به select رو دوباره حذف، ویرایش و یا در دیتابیس ذخیره کرذ. البته هر کدومش توی یک رکورد جداگانه.

ویرایش شده توسط Anisi
لینک به ارسال

خوب مشکلی نداره.

بالاتر گفتم میشه ارسال رو توی یک تابع انجا بدید با جی کوئری که اگر همه فیلدها پر نبود return false میکنه و اطلاعات ارسال نمیشه و ولیدیت انجام میشه

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

نمونه زیاد هست. همون ولیدیت های معمول هم همین کار رو انجام میدن.

لینک به ارسال

خوب فکر کنم باید مثال تصویری بزنم!

post-849-0-10754600-1362902742_thumb.jpg

امیدوارم گویا باشه.

ویرایش شده توسط Anisi
لینک به ارسال

ببینید اصل کار شما اشتباه هست!

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

شما اگر هر فرم رو بعد پر شدن ارسال کنید مرحله دوم حذف میشه و مجموعه عملیاتی که بالاتر گفتم رو میتونید براحتی اجرایی کنید.

دلیلی برای ایندو مرحله دارید؟

لینک به ارسال

ببینید اصل کار شما اشتباه هست!

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

شما اگر هر فرم رو بعد پر شدن ارسال کنید مرحله دوم حذف میشه و مجموعه عملیاتی که بالاتر گفتم رو میتونید براحتی اجرایی کنید.

دلیلی برای ایندو مرحله دارید؟

این فکر رو هم داشتم. ولی یک موردی هست. اگر اینجا اینطوری پیاده نشه، برای اینکه بعدا هم بخواد ویرایش کنه، همین کار باید براش انجام بشه. نه؟!

و مورد اینکه چون برای هر موردی که وارد میشه، حتما باید پرداخت و دریافت هم وارد بشه، اگر نشه در واقع اون مورد ناقص هست و باید پاک بشه ولی اگر این کارو نکنم پاک نمیشه دیگه!

یعنی منظور شما اینه که توی مرحله اول اطلاعات کلی ثبت و ذخیره بشه و بعد اطلاعات پرداخت و دریافت هم همین اتفاق براش بیوفته؟ نمونه ای چیزی هست من ببینم؟!

لینک به ارسال
این فکر رو هم داشتم. ولی یک موردی هست. اگر اینجا اینطوری پیاده نشه، برای اینکه بعدا هم بخواد ویرایش کنه، همین کار باید براش انجام بشه. نه؟!

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

و مورد اینکه چون برای هر موردی که وارد میشه، حتما باید پرداخت و دریافت هم وارد بشه، اگر نشه در واقع اون مورد ناقص هست و باید پاک بشه ولی اگر این کارو نکنم پاک نمیشه دیگه!

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

یعنی منظور شما اینه که توی مرحله اول اطلاعات کلی ثبت و ذخیره بشه و بعد اطلاعات پرداخت و دریافت هم همین اتفاق براش بیوفته؟ نمونه ای چیزی هست من ببینم؟!

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

لینک به ارسال

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

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

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

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

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

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

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

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

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