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

سؤال في الPhp

مغلق
بدأه قمـ14ـر في 30 ديسمبر 2006 · 6 رد · 573 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندي سؤال بالنسبة للـphp

اذا عندي combo box فيه اسم البلد وعندي combo box ثاني فيه اسماء المدن

المفروض اليوزر اول مايختار بلد على طول الbox تبع المدن يتغير ويشاور على مدن البلده اللي اختارها

كيف اخليه اوتوماتيك يتغير؟؟؟

شكرا

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

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#2

السلام عليكم

ممكن توضيح اسماء المدن هل هي موجودة داخل كود الجافا سكربت في Array مثلا, اذا كان عدد الدول قليل مثل دول الخليج العربي فقط و مدنهم

اما أذا عدد الدول كبير مثلا جميع دول العالم فيجب ان توضع المدن على السيرفر في قاعدة بيانات او ملفات على مثل jo.lst us.lst وهكذا او 1.lst او اية طريقة أخرى

أرجوا التوضيح

سلام

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#3

وعليكم السلام ورحمة الله وبركاته

اخوي انا حاطة اسماء المدن والدول العربية فقط

بس اسماء المدن عملتها بالدريم ويفر في combo box عادي

بدون مااخزنها في array او داتا بيس....

هل ينفع كذا؟؟؟ولا لازم اخزنها في مصفوفة؟؟

واذا ممكن كذا ممكن تشرحلي كيف يسير اوتوماتيك اسماء مدن هذه الدولة تظهر؟؟؟

شكرا لك

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

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#4

السلام عليكم ورحمة الله وبركاته

اخوي انا غيرت, خزنت اسماء المدن والدول في داتا بيس(كل واحد في جدول)

كيف ممكن اربطهم ببعض؟؟؟

يعني اول ما اليوزر يختار اسم الدولة تظهر له على طول اسماء مدن هذه الدولة

؟؟؟

وشكرا لك اخوي

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

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#5

السلام عليكم

تستطيعي باستخدام ajax

اسف ولكن الان الوفت متاخر ان شاء الله بكرة اقولك الطريقة

سلام

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#6

ســـــــلام...

اخوي الله يعطيك العافيه ياااارب

بلييييييييييز انا انتظر ردك

وشكرا لك

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

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#7

السلام عليكم

تستطيعي طلب اسماء المدن من السيرفر باستخدام ajax اذا كانت مدعومة من قبل المتصفح

لنفرض ان لدينا القائمة التالية

<select name=country_id onchange="getCitys(this.value);">
  <option value=SA>Saudi Arabia</option>
  <option value=JO>Jordan</option>
  <option value=PI>Palestine</option>
  <option value=AE>United Arab Emirates</option>
</select>
<span id="city_span"></span>

عند اختيار الدولة يتم منادات الميثود getCitys ويتم ارسال رقم الدولة لها

الاّن سنكتب هذه الميثود التي ستحضر المدن على اساس رقم الدولة

function getElementById(ElemID)
{if(document.all){return document.all(ElemID);}
 return document.getElementById(ElemID);}  

function getCitys(country_id) {
	if(window.XMLHttpRequest) {
		try {XMLObj = new XMLHttpRequest();
			}catch(e){XMLObj = null;}
	  }
	else if( window.ActiveXObject) 
	 {
	  try {XMLObj = new ActiveXObject("Microsoft.XMLHTTP");}
	  catch(e) 
		 {try {XMLObj = new ActiveXObject("Msxml2.XMLHTTP");}
		  catch(e){XMLObj = null;}
		}
	}

   if(XMLObj!=null) 
	 {var fileURL=lpURL+country_id;
	  XMLObj.onreadystatechange = XMLObj_onreadystatechange;
	  XMLObj.open("get", fileURL, true);
	  XMLObj.send("");
	 }
   else
   {
	the browser does not support this method
	 so you have to do something here in this case
	 like 
	 document.location="?country_id="+country_id;

   }  
}

في حالة ان المتصفح لا يدعم ajax فيجب ان تحضري المدن بطريقة أخرى مثل

ان تصنعي IFrame ثم يكون مصدره ملف php الذي سيحضر المدن من قاعدة البيانات

او ان تفتحي window جديدة مصدره ملف ال php ولكن بالبسبة لهذه الحاليتين

في حالة ال IFrame اذا اردت ان تصلي الى ميثود في الصفحة التى تحوي الIFrame بهذه الطريقة

top.window.setCitySelectOptions();
setCitySelectOptions هذه الميثود التي نرسل لها اسماء لمدن

وللwindow

window.opener.setCitySelectOptions();
opener هي الwindow التي فتحت الwindow الحالية

طبعا ترسلي argument ال صفحة الphp لمعرفة عل هي مطلوبة عن طريق XMLRequest ام من داخل IFrame ام من window مفتوحة حتى تتم ارسال المخرخات بالطريقة المناسبة

XMLObj_onreadystatechange هذا الفنكشن سينادا من قبل ال XMLObj عند تغيير الحاله للطلب

function XMLObj_onreadystatechange() 
{   if(XMLObj.readyState == 4) 
	   {if(XMLObj.status == 200) 
		   {setCitySelectOptions(XMLObj.responseText);} 
		else 
		   { //يجب ان تحضري المدن بطريقة أخرى
			 getElementById("city_span").innerHTML="Error : "+XMLObj.statusText; }
	   }
}

function setCitySelectOptions(lpOptions)
{var retCityCount=0;
 if(lpOptions.substring(0,4)=="+OK:")
	{
	 retCityCount=lpOptions.substring(4,lpOptions.indexOf("\n"))
	 lpOptions=lpOptions.substring(lpOptions.indexOf("\n")+1);
	 }
  getElementById("city_span").innerHTML="<select name=city_id>"+
				 lpOptions+"</select>";
}

طبعا تستطيعي اضافة عناصر الى القائمة select مباشرة دون الحاجة الى تغيير innerHTML تاع ال span

بالطريقة التالية

var opt=document.createElement("Option")
opt.text="Text";
opt.value=1;
city_id.innerHTML="";//to clear the select elements
if(document.all)city_id.add(opt);
else city_id.add(opt,null);

هذا مثال ولاستخدامها

ارجوا ان تضيفي الطرق الأخرى في حالة فشل الطريقة الأولى

والله أعلم

city.rar

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

هذا الموضوع مغلق.

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