PDA

View Full Version : ساخت فرم (اضافه کردن فیلد به طور اتوماتیک)



olampiad
پنج شنبه 03 اردیبهشت 1394, 13:25 عصر
سلام و خسته نباشید به دوستان عزیز
به این تصویر من ی نگا بندازید.
http://s6.picofile.com/file/8184320900/asb.PNG
این پروژه خودم نوشتم که با استفاده از jquery به form فیلد اضافه میکنه.
به این تصویر ی نگا بندازید.
http://s4.picofile.com/file/8184320950/asbb.PNG
میبیند که من با استفاده از jquery سه فیلد به اون اضافه کردم(میتونم هر چند تا فیلد که خواستم به پروژم اضافه کنم.)
حالا مشکلی که من دارم اینه.
من به هر فیلدی که اضافه میکنم نام متفاوتی میدم.
یعنی اسم هیچ کدوم از فیلد ها تکراری نیستش.
ولی
وقتی دکمه ی ثابنیت رو میزتم و form اطلاعات رو به صفحه ی دیگه ای میفرسته:
هیچ کدوم از فیلد های جدید(فیلد هایی که بعدا با استفاه از جی کوئری ساختم) ارسال نمشه و فقط فیلد های قدیمی ارسال میشن:
به نظرتون مشکل از کجاست.
من میخوام هر فیلدی رو که تازه ساختم بتونه اطلاعات رو به همراه فرم به صفحه ی دیگه بفرسته.
امید وارم منظورمو متوجه شده باشین.
اینم کد ساخت فرم


$('#create').click(function(){
var title=$('#title').val();
$('#table').append('<tr> <td>'+title+' :</td><td><input type="hidden" name="fi_'+count+'"><textarea class="in" name="field_'+count+'"> </textarea></td> <td style="text-align:center;"><a href="" class="del">حذف</a></td> </tr>');
count++;


خیلی ممنون

j_naroogha@yahoo.com
پنج شنبه 03 اردیبهشت 1394, 13:41 عصر
والا این کد که خبری از ایجکس نیس...
فقط ظاهرا روی یه دکمه که کلیکی میکنین چند تا تگ اضافه میکنه.

مهرداد سیف زاده
پنج شنبه 03 اردیبهشت 1394, 15:38 عصر
اول این که روش گرفتن داده‌های چند فیلدی در یک فرم شما اشتباه هست
وقتی قصد بر این باشه که در یک فرم مثلا فیلدهای مثل هم ولی با داده‌های متغر ارسال بشه از روش زیر استفاده میشه


<form action="snd.php" method="post">
<input type="text" name="fname">
<input type="text" name="lastname">


<textarea name="info[1]"></textarea>
<textarea name="info[2]"></textarea>
<textarea name="info[3]"></textarea>


<input type="submit" value="send">
</form>


و در سمت php بصورت زیر


$fname = isset($_POST['fname'])?$_POST['fname']:null;
$lastname=isset($_POST['lastname'])?$_POST['lastname']:null;


$info = isset($_POST['info'])?$_POST['info']:null;
if($info!=null)
{
foreach ($info as $k => $v) {
echo $info[$k];
}
}


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

olampiad
پنج شنبه 03 اردیبهشت 1394, 18:18 عصر
والا این کد که خبری از ایجکس نیس...
فقط ظاهرا روی یه دکمه که کلیکی میکنین چند تا تگ اضافه میکنه.


سلام
درسته ، همین جوری که شما گفتین.
من تا به حال با ajax کار نکردم ولی کدی که من نوشتم فیلدی ها رو به خوبی از لحاظ ظاهری به سایت اضافه میکنه.
ولی
وقتی کلیک راست میکنم و view page source رو می زنم از لحاظ کد چیزی به سایت اضافه نشده.
برای حل این مشکل چیکار کنم.
خیلی ممنون

olampiad
پنج شنبه 03 اردیبهشت 1394, 18:25 عصر
بهترین راهی که به نظرتون میرسه بتونم به صفحم با jquery فیلدی اضافه کنم و در هنگام ارسال دیتا بتونه ارسال کنه چیه؟
خیلی ممنون

olampiad
پنج شنبه 03 اردیبهشت 1394, 18:31 عصر
اول این که روش گرفتن داده‌های چند فیلدی در یک فرم شما اشتباه هست
وقتی قصد بر این باشه که در یک فرم مثلا فیلدهای مثل هم ولی با داده‌های متغر ارسال بشه از روش زیر استفاده میشه


<form action="snd.php" method="post">
<input type="text" name="fname">
<input type="text" name="lastname">


<textarea name="info[1]"></textarea>
<textarea name="info[2]"></textarea>
<textarea name="info[3]"></textarea>


<input type="submit" value="send">
</form>


و در سمت php بصورت زیر


$fname = isset($_POST['fname'])?$_POST['fname']:null;
$lastname=isset($_POST['lastname'])?$_POST['lastname']:null;


$info = isset($_POST['info'])?$_POST['info']:null;
if($info!=null)
{
foreach ($info as $k => $v) {
echo $info[$k];
}
}


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

تشکر فراوان از دوستان عزیز
من کاری رو که میگفتین رو انجام دادم ولی اصلا انقار فیلد هایی رو که اضافه میکنم وجود خارجی ندارن.
یعنی هیچ دیتایی رو نمیفرستن
مرسی