السلام عليكم....
هذي ياطويل العمر تعني ان هذا الحقل سيتم استقباله في الملف الآخر كمصفوفه.. يعني مثلا هذا الكود
كود PHP:
<input type="text" name="test[]" />
<input type="text" name="test[]" />
عندما يتم ارسال الفورم بطريقة post فان الملف المستقبل لهذا الفورم سيحتوي على المصفوفه التاليه
كود PHP:
echo $_POST['test'][0]; // سيطبع ما تم كتابته في الحقل الأول
echo $_POST['test'][1]; // سيطبع ما تم كتابته في الحقل الثاني
المصفوفات يطول شرحها و لكن تفضل هذا الرابط سيفيدك
http://www.php.net/types.array
وكذلك جرب البحث في موقع قرية البي اتش بي...
بعد أن تتعمق قليلا في المصفوفات و تفهمها بشكل واضح سيسهل عليك فهم الكود أكثر و أكثر...
بالنسبة للمصفوفه التي ذكرناها في المثال السابق (N[ ]) فهي مصفوفه رقميه تبدأ من الرقم صفر (لاحظ شرحي للملف الثاني بالأعلى)... يمكن أيضاً أن نحدد قيمة الرقم التي تبدأ منه المصفوفه بالشكل التالي
كود PHP:
for ($i=1; $i<11; $i++) {
echo "<input type=\"text\" size=20 name=\"name[$i]\" />إسم الطالب رقم $i";
وهنا ستكون الحقول في الملف الثاني بالشكل
كود PHP:
$_POST['N'][1] // يحتوي على المدخل في الحقل الأول
$_POST['N'][2] // يحتوي على المدخل في الحقل الثاني
وأعتقد أن هذه الطريقه أصوب من الطريقة السابقه.. فيكون لديك الملفان بالشكل التالي:
كود PHP:
<form method="POST" action="P2.php">
<?
for ($i=1; $i<11; $i++) {
echo "<input type=\"text\" size=20 name=\"name[$i]\" />إسم الطالب رقم $i";
echo "<input type=\"checkbox\" name=\"check[$i]\" /><br />";
}
?>
<input type="Hidden" size=20 name="total" value="<? echo $i-1 ?>">
<input type="submit" value="أرسل" name="Ps5">
<form>
والملف الثاني
كود PHP:
<?
$name = $_POST['name']; // مصفوفه يتم استقبالها من الملف الأول
$check = $_POST['check']; // مصفوفه تكون لها قيمه اذا تم وضع علامة صح على البوكس
$total = (int)$_POST['total'];
for ($i=1; $i<$total; $i++) {
$st_name = empty( $name[$i] ) ? "لا يوجد" : $name[$i];
$checked = isset( $check[$i] ) ? "تم تحديده" : "لم يتم تحديده";
echo "الطالب رقم:" . $i;
echo " الإسم: " . $st_name;
echo " " . $checked;
echo "<br>";
}
?>
ولاحظ أنني قد أضفت اليه خاصيه الشك بوكس... بالنسبة للشك بوكس الوضع مختلف عن ردي السابق، يجب تحديد قيمه الرقم (check[$i]) لكل واحد منها ، وبذلك يتم التعرف عليه اذا قد تم اختياره (isset)... أما لو جعلناها كما هو في المثال لأول (check[ ]) فان الملف المستقبل سيقوم باعادة ترتيب المصفوفه $_POST['check'] وسيعطيك نتيجه غير متوقعه... مهما كن ترتيب الاختيار (مثلا قمت بتحديد رقم 3 و 5) فانه
كود PHP:
$_POST['check'][0] // ستكون لها قميه
$_POST['check'][1] // ستكون لها قميه
$_POST['check'][2] // لن تكون لها قيمه! وكذلك بالنسبة للبقية لن تكون لها اي قيمه
أعتقد أن شرحي بالأعلى غير واضح.. لكن قم بالبحث أكثر عن المصفوفات حتى تستوعبها و راجع الاكواد السابقه وشاهد الفرق بينها.. و قم بالتجربه ثم التجربه وباذن الله ستتضح لك الفكره..
بوجـــــــــــــبر