برای دیدن نسخه كامل اینجا را كلیك كنید : مهم:چاپ کردن و درج کردن ارایه ای از text field ها
mahsa66
2010/11/23, 03:10 PM
سلام دوستان من میخوام برای صفحه ثبت دانش آموزان به صورت دسته جمعی ام،اول مدیر تعداد دانش آموز هایی رو که میخواد ثبت کنه رو وارد کنه و در صفحه بعد به تعدادی که مدیر خواسته بود تکست فیلد نمایش دهد که برای ین کار از یک حلقه for استفاده کردم و تکست فیلد هام رو درون ان ها قرار دادم اما می دونم که تکست فیلد ها برای این که بعدا بخوام بخونمشون و در دیتابیس ذخیره کنم باید به صورت ارایه تعریف بشن اما نمیدونم تکست فیلد ها را چه طوری به صورت ارایه تعریف کنم و اون ها را چاپ کنم و یا در دیتابیس ذخیره کنم
ممنون اگه یه نمونه از ارایه تکست فیلد بذارید.
Sharif_
2010/11/23, 06:26 PM
سلام دوستان من میخوام برای صفحه ثبت دانش آموزان به صورت دسته جمعی ام،اول مدیر تعداد دانش آموز هایی رو که میخواد ثبت کنه رو وارد کنه و در صفحه بعد به تعدادی که مدیر خواسته بود تکست فیلد نمایش دهد که برای ین کار از یک حلقه for استفاده کردم و تکست فیلد هام رو درون ان ها قرار دادم اما می دونم که تکست فیلد ها برای این که بعدا بخوام بخونمشون و در دیتابیس ذخیره کنم باید به صورت ارایه تعریف بشن اما نمیدونم تکست فیلد ها را چه طوری به صورت ارایه تعریف کنم و اون ها را چاپ کنم و یا در دیتابیس ذخیره کنم
ممنون اگه یه نمونه از ارایه تکست فیلد بذارید.
به شخصه من درست نمیدنم که در یک بار اطلاعات تمام اعضا در یکجا فرستاده بشه
بهتر بود که تک تک باشه
ولی برای ایجاد ارایه ای Input Box ها کافی هست بعد از ایجاد باکس ها به صورت ارایه ای با استفاده از حلقه foreach محتویات اونا رو بخونید
برای مثال کد زیر رو براتون نوشتم
در صفحه index.php اسکریپت زیر رو تایپ و اجرا کنید
<FORM name ="form1" method ="post" action ="index.php">
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
First name: <input type="text" name="firstname[]" /><br />
<P>
<Input type = "Submit" Name = "Submit1" VALUE = "Select">
<?PHP
if (isset($_POST['Submit1'])) {
foreach($_POST['firstname'] as $key=>$value)
echo $value.' ';
}
?>
اگر دقت کنید بعد از نام هر input علامت [] گذاشته شده تا به صورت ارایه دربیاد
mahsa66
2010/11/24, 01:53 PM
من با درجش در db و ریختنش تویه متغیر مشکل دارم چون من 8 تا ارایه دارم، نمیدونم اونا رو چطوری باید توی یه حلقه بذارم تا همشون رو با هم insert کنم. نمیشه از حلقه for استفاده کرد؟
ممنون اگه یه نمونه از ریختنش تویه یه متغیر یا ذخیره در db برام بذارید احتیاج فوری دارم ممنون:gol:
Sharif_
2010/11/24, 02:22 PM
اگر کد بالا رو نگاه می کردید می دیدید که محتویات ارایه در حلقه تک تک در متغییر value قرار می گیرند
حالا به جای چاپ کردن شما متغییر رو در یک رکورد در پایگاه ذخیره کنید
به شکل زیر
فرض بر این که جدول table1 از دو فیلد id و name تشکیل شده
$query="insert into table1 values(شماره,'".$value."')";
ولی اگر می خواهید تمام ارایه رو در یک رکورد ذخیره کنید از نظر نرمال سازی کاملا اشتباه هستش
mahsa66
2010/11/24, 02:37 PM
من یه جدول دانش آموز دارم که دارای این فیلدهاهستش :
نام، نام خانوادگی، کد دانش آموزی آدرس و تلفن و غیره که این ها برای هر دانش آمورز باید وارد بشه حالا من میخوام مدیر تعداد دانش آموزان رو وقتی انتخاب کردبه اون تعداد تکست فیلد برای هر فیلد ایجاد شود ان وقت برای هر دانش اموز این تکست فیلد ها رو وارد کنم و ثبت رو بزنم اون وقت این ها برای دانش اموزان ثبت بشه
کد php :
<?php $stdnum=$_POST['stdnumber'];
for($i=0;$i<$stdnum;$i++){ ?>
<tr>
<td height="49"><div align="right">
<input name="email[]" type="text" id="email">
</div></td>
<td><div align="right">
<input name="tell[]" type="text" id="tell" size="15">
</div></td>
<td><div align="right">
<input name="ttavalod[]" type="text" id="ttavalod" size="15">
</div></td>
<td><div align="right">
<input name="shomareshenas[]" type="text" id="shomareshenas" size="15">
</div></td>
<td><div align="right">
<input name="sfamily[]" type="text" id="sfamily" size="15">
</div></td>
<td><div align="right">
<input name="sname[]" type="text" id="sname" size="15">
</div></td>
<td><div align="right">
<input name="stdID[]" type="text" id="stdID" size="15">
</div></td>
</tr>
<?php }?>
</table>
<p><input name="submit" type="submit" style="width: 73px; height: 31px;" value="ثبت"> </p>
<p>
<input name="stdnum" type="hidden" id="stdnum" value="<?php echo $stdnum;?>">
</p>
</form>
حالا چطوری باید این ها رو insert دسته جمعی کنم؟
Sharif_
2010/11/25, 11:03 AM
این کار کاملا اشتباه هست
چرا که وقتی مقدار 100 رو برای متغییر stdnum پاس می کنید در فرم 700 تا textbox ایجاد میشه
و در هنگام ارسال اگر به مشکلی بر خوردید باید تمام فیلد ها از نوع پر بشه(که احتمال بسیار بالا این اتفاق خواهد افتاد)
مسئله دوم این هست که اگر هنگام درج در پایگاه ، اطلاعات نادرست باشه
مدیریت اون که وابسته به چه کسی هست سخت خواهد بود
شما یه فرم با 7 تکست باکس طراحی کنید و با هر بار ارسال کردن یک شخص در پایگاه، فرم خالی بشه تا نفر بعدی رو مدیر وارد کنه
baback
2010/11/28, 01:33 PM
در رابطه با منطق ایجاد اون فرم با مشخصاتی که گفتید، من هم با شریف موافق هستم. این که برای تعدادی که مدیر نیاز داره ، تمام تکست فیلدها در صفحه بعد نمایش داده بشه از لحاظ منطقی هم مناسب نیست. شما فرض کنید مدیر بخواد تمام این مشخصات رو برای 50 دانش آموز وارد کنه اونوقت میدونید چقدر از زیبایی و performance سایت شما کاسته میشه !؟ اگر هر دانشجو 5 فیلد داشه باش با ضرب در این عدد چیزی حدود 250 تکست فیلد در صفحه شما نایش داده خواهد شد !! تازه ب زدن دکمه ثبت حداقل 50 query دریک لحظه اجرا خواهد شد ! اصلن اگر یک تک تکست فیلدهم برای 50 نفر تکرار بشه بازهم مشکلات و سردرگمی ایجاد خواهد کرد. پس بهتر هست که فرمی طراحی کنید که مدیر بعد از وارد کردن مشخصات یک دانش آموز از مدیر سوال کنه آیا میخواد اطلاعات دیگری وارد کنه یا خیر که اگر خواست دوباره اون فرمrefresh بشه.
من فکر میکنم مشکل شما بیشتر به طراحی این برنامه به خصوص این بخش ازبرنامه تون از لحاظ منطقی برمیگرده .یعنی برنامه شما به اصطلاح مهندسی ساخت نیست ( که این برمیگرده به مهندسی نرم افزار و ... )
شما اگر با منطقی که شریف عزیز عنوان کرد پیش برید، دیگه هیچ نیازی به این نخواهید داشت که مشخصات رو در آرایه ذخیره کنیدکه بعد هم بخواید اونها رو با یک حلقه در فیلدهای بانکتون قرار بدید. با این فرم جدید فقط شما تکست فیلدهارو با اسم خودشون دریافت میکنید و اونهارو در فیلدهای بانک مربوط به دانش آموزان ذخیره میکنید.... و بعد دوباره نفر بعدی
من هم موافقم که این منطق برای این مسئله با شرایطی که داره مناسب نیست .
اگر هم نیاز باشه که یک آرایه رو در یک فیلد ( فقط یک فیلد ) ذخیره کنید هم به شرط اینکه ازلحاظ نرمال سازی مشکل نداشته باشه ،امکان پذیر هست که اینجا مورد بحث نیست .
Powered by vBulletin® Version 4.1.12 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.