PDA

View Full Version : سوال: درج اتوماتیک تکس باکس



رضا قربانی
چهارشنبه 07 اردیبهشت 1390, 20:23 عصر
با سلام خدمت تمامی دوستان عزیز

یه جایی از پروژه ای که دارم انجام می دم گیر کردم و باید حتما به طور اتوماتیک با زدن بر روی دکمه یا لینک یک تکس اضافه بشه.

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

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

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

با تشکر

BehinAfzar
چهارشنبه 07 اردیبهشت 1390, 21:16 عصر
سلام
شما با کد javaScript این کار رو انجام بدی
یه تگ div ایجاد کن مثالا با نام div1 بعد با کد زیر یک تکس باکس ایجاد کن

onClick="document.getElementById('div1').innerHTML+='<input type=text name=txt> '"

البته اگه بخواهی چند تا تکس باکس ایجاد کنی باید نام اونها رو به صورت متغییری قرار بدی
اگه سوالی بود در خدمتیم
موفق باشی

ماهان مقدم
چهارشنبه 07 اردیبهشت 1390, 21:41 عصر
راه حل دوست بالا درسته. نام رو باید اینطوری بدی:


<input type="text" name="name[]">

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 08:58 صبح
من می خوام با کلیک بر روی گزینه ای تکس باکس ها اضافه بشن!! و چند تکس باکس هست و چطوری باید نامشون رو متغیری قرار بدم ؟


name="name[]" نام یکس را باید داخل [] قرار بدهم ؟

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 09:23 صبح
اما متاسفانه این عمل نمی کنه ؟

ببینید من div1 رو با ( # ) بسازم یا با ( . ) دات ؟
من این رو باید در تگ هد قرار بدم ؟ در در css ای که می سازم ؟
<script type="text/javascript">
onClick="document.getElementById('div1').innerHTML +='<input type="text" name="name[]"> '"

</script>


من چند تا تکس باکس دارم و باید بهشون اتوماتیک نام بخوره تا من محتویاتشون رو بتونم دریافت کنم و در بانک ذخیره کنم.
آقایون یه کم واضح تر توضیح می دید

ممنون می شم

MMSHFE
پنج شنبه 08 اردیبهشت 1390, 09:41 صبح
با سلام، دوست گرامي فرم رو بايد به اين صورت طراحي كنيد:


<SCRIPT language="javascript">
function add()
{
document.getElementById('input').innerHTML += '<INPUT type="text" name="text[]"/><BR/>';
}
</SCRIPT>
<FORM action="result.php" method="post">
<INPUT type="button" value="Add another text box" onClick="add();"/>
<DIV id="input">
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
</DIV>
<INPUT type="submit" value="Send"/>
</FORM>
با اين كار، در صفحه result.php متغير ['POST['text_$ در حقيقت يك آرايه خواهد بود كه با كمك حلقه for يا foreach ميتونيد مقادير واردشده توسط كاربر رو دريافت كنيد.
موفق باشيد.

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 09:54 صبح
با سلام، دوست گرامي فرم رو بايد به اين صورت طراحي كنيد:


<SCRIPT language="javascript">
function add()
{
document.getElementById('input').innerHTML += '<INPUT type="text" name="text[]"/><BR/>';
}
</SCRIPT>
<FORM action="result.php" method="post">
<INPUT type="button" value="Add another text box" onClick="add();"/>
<DIV id="input">
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
</DIV>
<INPUT type="submit" value="Send"/>
</FORM>
با اين كار، در صفحه result.php متغير ['POST['text_$ در حقيقت يك آرايه خواهد بود كه با كمك حلقه for يا foreach ميتونيد مقادير واردشده توسط كاربر رو دريافت كنيد.
موفق باشيد.


ممنون و متشکر

جواب داد

من از جاوا زیاد سر در نمیارم ، ، ، این یه تیکه کد جاوا توی امنیت سایت مشکلی نداره ؟

ما قبلا میومدیم و اطلاعات post رو داخل یک متغیر می انداختیم و امنیتش رو برقرار می کردیم و سپس در بانک ذخیره می کردیم

حالا من چطوری باید اطلاعاتی که به صفحه result.php ارسال شد رو دریافت کنم ؟ برای مثال من 10 تا تکس رو add ، و اطلاعاتش رو ارسال کردم ؟؟؟؟؟

MMSHFE
پنج شنبه 08 اردیبهشت 1390, 10:13 صبح
با سلام، به كمك اين روش:


foreach($_POST['text'] as $text)
{
...//each item can be accessed with $text
}

يا به اين طريق:


for($i=0;$i<count($_POST['text'];$i++)
{
...//each item can be accesse with $_POST['text'][$i]
}

توي توضيحات داخل حلقه ها گفتم كه به عنصر موردنظرتون از چه طريقي دسترسي پيدا كنيد.
موفق باشيد.

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 10:26 صبح
شما برای ذخیره سازی در بانک چه روشی رو پیشنهاد می کنید؟
یعنی من یک جدول دارم و این اطلاعات رو برای یک رکورد باید درج کنم .

نظر من اینه که ما بیاییم و یک مقدار معینی برای اضافه کردن تکس باکس مثلا 10 تا تعریف کنیم که کاربر فقط تا 10 تا بتونه اضافه کنه و ما هم در بانک 10 تا فیلد بسازیم که کاربر هر چقدر خواست ، چه یکی چه ده تا بتونه اطلاعات درج کنه و وارد بانک کنه .

آیا این روشی که می گم خوبه یا روش بهتری رو پیشنهاد می کنید؟

MMSHFE
پنج شنبه 08 اردیبهشت 1390, 11:44 صبح
يك راه ديگه هم اينه كه براي هر ركورد، علاوه بر ID، يك UserID هم داشته باشين و هر گزينه اي كه ثبت ميشه، از طريق اين فيلد مشخص بشه كه مربوط به كدوم كاربره و موقع خوندن هم برحسب كاربر دسته بندي بشه. اينطوري ديگه محدوديت ندارين.
موفق باشيد.

رضا قربانی
پنج شنبه 08 اردیبهشت 1390, 12:46 عصر
يك راه ديگه هم اينه كه براي هر ركورد، علاوه بر ID، يك UserID هم داشته باشين و هر گزينه اي كه ثبت ميشه، از طريق اين فيلد مشخص بشه كه مربوط به كدوم كاربره و موقع خوندن هم برحسب كاربر دسته بندي بشه. اينطوري ديگه محدوديت ندارين.
موفق باشيد.

من اصلا کاری به کاربر ندارم .
وقتی یه کاربر میاد اطلاعات وارد کنه نیاز به یک تکس داره تا اطلاعات رو وارد کنه !! من در اینجا بهش اختیار می دم تا بتونه تا 10 تکس رو وارد کنه و برای ذخیره کردن در بانک باید 10 فیلد داشته باشم ، چه پر کنه چه خالی بذاره


حالا در مورد این کدی که شما گذاشتید : من می خوام کاربر تا 10 تا تکس باکس بشتر نتونه درج کنه !! باید چی کار کنم

MMSHFE
پنج شنبه 08 اردیبهشت 1390, 23:34 عصر
با سلام، همونطور که در کد مشخصه، به جز کادرهای متن، دو تگ input دیگه هم داریم که مربوط به دکمه ها هستن. بنابراین، کافیه بگیم اگه تعداد عناصر input کمتر از 12 بود، عمل اضافه کردن انجام بشه:


<SCRIPT language="javascript">
function add()
{
var inputs = document.getElementsByTagName('input');
if(inputs.length < 12)
{
document.getElementById('input').innerHTML += '<INPUT type="text" name="text[]"/><BR/>';
}
}
</SCRIPT>
<FORM action="result.php" method="post">
<INPUT type="button" value="Add another text box" onClick="add();"/>
<DIV id="input">
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
<INPUT type="text" name="text[]"/><BR/>
</DIV>
<INPUT type="submit" value="Send"/>
</FORM>

موفق باشید.

sargardoon
شنبه 10 اردیبهشت 1390, 19:04 عصر
این هم یه نمونه دیگه هستش که امکان اضافه و حذف هم داره

<script type="text/javascript">
var idno = 2;
function addNewElement()
{
var mainDiv = document.getElementById('more_element_area');
var innerDiv = document.createElement('div');
innerDiv.setAttribute('id', 'divId' + idno);
var generatedContent = '<input type="text" name="new_element' + idno + '" id="new_element' + idno + '" value="This is my text box ' + idno + '" />&nbsp;<a href="javascript:void(0)" onclick="return removeThisElement(' + idno + ')">Remove This</a>';
innerDiv.innerHTML = generatedContent;
mainDiv.appendChild(innerDiv);
idno++;
}
function removeThisElement(idnum)
{
var mainDiv = document.getElementById('more_element_area');
var innerDiv = document.getElementById('divId' + idnum);
mainDiv.removeChild(innerDiv);
}
</script>


<div id="more_element_area">
<div>
<input type="text" name="new_element1" id="new_element1" value="" />
</div>
</div>
<a href="javascript:void(0)" onclick="return addNewElement()">+ Add more text box</a>

sargardoon
شنبه 10 اردیبهشت 1390, 19:08 عصر
این سایت هم سری بزن مثال جالبی آورده و توضیح داده چطوری میتونی با PHP اطلاعات را دریافت کنی
http://viralpatel.net/blogs/2009/03/dynamically-add-remove-rows-in-html-table-using-javascript.html