PDA

View Full Version : حرفه ای: یک سوال درباره چگونگی ساخت فرم ساز تحت وب



amirjalili
دوشنبه 24 اسفند 1388, 01:16 صبح
با سلام خدمت دوستان. من سوالی برام پیش اومده که ذهنم رو مشغول کرده.

ببینید فرض کنید یک فرم ساز میسازید .. کنترل هایی در صفحه دارید که با Drag , drop اون ها رو تو صفحه میندازید و شکل فرم رو میسازید. مثلا 2 تا text box و یک button رو در صفحه قرار میدید و بعد سورس صفحه رو در دیتابیس ذخیره میکنید.
خوب من میدونم که برای این کار از createElement در جاوا اسکریپت استفاده میشه و تا اینجا همه چی درسته اما مسئله همین جاست که createElement فقط در ظاهر کنترل های مورد نظر رو به صفحه اضافه میکنه اما خوب جاوا اسکریپت قادر نیست سورس واقعی صفحه رو تغییر بده یعنی شما اگه view source کنید میبینید که سورسی به صفحه اضافه نمیشه یعنی مثلا با درگ کردن یک button سورسی به صورت


<inpute type=" button" />
به صفحه اضافه نخواهد شد و این به خاطر کلاینتی بودن جاوااسکریپت طبیعیه.
حالا سوال اینجاست که خوب پس ما چجوری سورس کامل رو همراه تگ های اضافه شده مربوط به کنترل هایی که اضافه شده رو بدست میاریم که بعد بخواهیم ذخیره کنیم.

اصلا تفکر و راه حل من در مورد این قضیه درسته؟
ممنون

amirjalili
دوشنبه 24 اسفند 1388, 01:21 صبح
راستی این هم نمونه چیزی که میگم. در سایت زیر فرم رو با درگ کنترل های مورد نیاز میسازید. بعد بالا گزینه ای به اسم source داره. که سورس رو به شما میده.
http://www.jotform.com/

Milad Mohseny
دوشنبه 24 اسفند 1388, 01:32 صبح
با اين كد ميتوني به اشياي داخل صفحه حتي اونايي كه تو Run time اضافه ميشن دسترسي داشته باشي.
قسمت if رو دقت كن من شرط گذاشتم فقط textbox و button رو شناسايي كنه و id شون رو نمايش بده.
function AllElement() {
var type;
if (document) {
for (oEl = 0; oEl < document.forms[0].length; oEl++) {
type=document.forms[0][oEl].type;
if (type) {
if (type == "text" || type == "textarea" || type == "button") {
alert(document.forms[0][oEl].id);
}
}
}
}
}

amirjalili
دوشنبه 24 اسفند 1388, 01:49 صبح
با تشکر از شما..
اما سورس html جدید رو بعد از اضافه شدن کنترل های جدید توسط جاوااسکریپت رو چطور میشه بدست آورد؟
با کد شما میشه چیزی رو اضافه شده رو فقط بهش دسترسی پیدا کرد.
اما دستیابی به سورس html جدید هنوز امکان پذیر نیست.
ببین الان اینقدر تشنه این موضوع هستم که اگه یه سر نخ مناسب بهم بدید تا تهش رو میرم. سرچ کردم اما چیزی گیرم نیومد.
ممنون میشم اگه راهنماییم کنید.

Milad Mohseny
دوشنبه 24 اسفند 1388, 02:29 صبح
اما دستیابی به سورس html جدید هنوز امکان پذیر نیست.
با document.body.innerHTML الان تست كردم جواب ميده.
مثلاً اگه كد زير رو فرا خواني كني ...
alert(document.body.innerHTML);

amirjalili
دوشنبه 24 اسفند 1388, 10:14 صبح
مرسی ..
تجربه متفاوت و جالبی بود