الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]كيفية إرسال أكثر من متغير التكست بوكس الواحد

بدأه star_tamer_1980 في 20 نوفمبر 2012 · 2 رد · 575 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو سمحتوا يا إخوان

أنا عندي مشكلة إني عايز أعمل موقع متعدد اللغات

والفكرة اللي أنا عايز أعملها

إن مثلاً العميل لما يحب يضيف تصنيف جديد

فلازم يضيف على حسب عدد اللغات ..

يعني هو لو أضاف للموقع 3 لغات يبقى يظهر في خانة التصنيف ثلاثة تكست بوكس حسب كل لغة

ولنفرض اللغات هي (العربية والإنجليزية والفرنسية)

أنا حاولت إني ادرج رقم اللغة مع اسم التكست بوكس بس هي مش شغالة

function get_lang_cat(){
	$query_lang = get_lang(); // ودي جملة السلكت للجدول
	 while($row = mysql_fetch_object($query_lang)){
		echo '
				<dl>
                        <dt><label for="cat">التصنيف باللغة '.$row->Name.'</label></dt>
                        <dd><input type="text" name="cat['.$row->id.'][]" id="" size="54" /></dd>
               </dl>   </dl>
		';
	}
}

وعند الضغط على موافق على الإضافة

والكود بتاعها

 if(isset($_POST['do']) && $_POST['do'] == 'save'){
	  echo $_POST['cat'][2].'<br>';
	  foreach($_POST['cat'] as $diam){

		 echo $diam[0];


	  }

فإنه يظهر لي القيمة

ولا أعرف كيف أستخرج رقم اللغة بتاع نفس التكست بوكس

يعني أنا عايز لما يدوس موافق

آخذ قيمة التكست بوكس واللغة اللي المفروض مكتوب لها

وعلى فكرة هاتتعمل كمان لو في أكثر من تكست بوكس

يعني بعد كده فيه مواصفات المنتج والسعر والكمية في نفس الفورمة

وكل ده محتاج أعرف القيمة بتاعته واللغة الخاصة بيه إذا كانت عربي أو انجليزي أو فرنساوي

يا رب ما أكنش أطلت عليكم

والسلام عليكم

#2

السلام عليكم

أولاً : أريد توضيح بعض النقاط :

* المصفوفة تتكون من خلايا لكل خلية معرف وهو الـindex أو يطلق عليه الـkey للمصفوفة وفي php من الممكن أن يكون من 0 إلى أقل من عدد عناصر المصفوفة بمقدار 1 كما هو الحال في أغلب لغات البرمجة وأيضاً من الممكن أن يكون سلسة نصية وهو ما يعرف بالـHashMap بالإضافة للقيمة value التي تحويها كل خلية .

ولذلك عندما نريد الوصول للقيم التي تحويها المصفوفة فقط من خلال دالة foreach تكون كالتالي :

  <?php
$array = array('name1'=>'ahmed','mohammed','name3'=>'jamal','mostafa');
foreach($array as $value)
{
	echo $value;
}
?>

- وإن أردنا الوصول للقيم التي تحويها المصفوفة بالإضافة لمعرف القيمة الـkey من خلال دالة foreach تكون كالتالي :

<?php
$array = array('name1'=>'ahmed','mohammed','name3'=>'jamal','mostafa');
foreach($array as $key=>$value)
{
	echo $key.' => '.$value.'<br>';
}
?>

- نعود لموضوعنا وهو أنك تريد إنشاء مصفوفة باسماء العنصر input باسم cat وسيكون الـkey لها هو $row->id كلام جميل ولكن كتابتك لهذا بالشكل التالي :

name="cat['.$row->id.'][]"

يعني أن كل قيمة من قيم المصفوفة تحوي داخلها مصفوفة أخرى وهذا مالا نحتاجه هنا .

- يمكن إستخراج ما تريد من هذا الكود ولكن لأن العلامة [] ليس لها فائدة هنا - إلا إذا كنت تقصد شيء أخر غير ما فهمت أنا - وأيضاً لكي يكون الكود أوضح سنزيلها ويصبح الكود كالتالي :

function get_lang_cat(){
    	$query_lang = get_lang(); // ودي جملة السلكت للجدول
 		while($row = mysql_fetch_object($query_lang)){
            	echo '
		           <dl>
						<dt><label for="cat">التصنيف باللغة '.$row->Name.'</label></dt>
						<dd><input type="text" name="cat['.$row->id.']" id="" size="54" /></dd>
		           </dl>   </dl>
            	';
    	}
}

- وعلى هذا سيكون كود php لإستخراج بيانات النموذج لهذا العنصر كالتالي :

if(isset($_POST['do']) && $_POST['do'] == 'save'){
	foreach($_POST['cat'] as $key=>$value){
		echo $key.' => '.$value.'<br>';
	}
}
2

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

بصراحة رائع والطريقة جربتها واشتغلت معايا بنجاح

وهو ده اللي كنت أقصده

حضرتك أفدتني فعلاً بطريقة مش متخيلها

ألف شكر على كل إجاباتك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…