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

خطأ في برمجة 2 Drop Down List بحيث الثاني يعتمد على الأول

بدأه maas في 30 ديسمبر 2008 · 1 رد · 943 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يا إخوان أنا أصمم web page تحتوي على 2 drop down list

بحيث الdrop down الأول يحتوي على الدول

و الثاني يحتوي على اسماء المناطق

فأريد أن أكتب الكود بالJava Script و الjsp

عندما يختار الuser الدولة في الdrop down الثاني تظهر أسماء المناطق المتعلقة بالدولة فقط

فهل توجد الأمثلة .... و شكرا

و هذا نص الكود

  1. <%
  2. String connectionURL3 = "jdbc:oracle:thin:@21.1.1.5:15321:developer";
  3.  
  4.  
  5. Connection connection3 = null;
  6.  
  7. Statement SQL_Statement3=null;
  8.  
  9. ResultSet SQL_Result3 = null;
  10.  
  11.  
  12. Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
  13.  
  14. try {
  15.  
  16. connection3 = DriverManager.getConnection(connectionURL3, "scott", "tiger");
  17. SQL_Statement3=connection3.createStatement();
  18.  
  19. String queryString3 = "Select distinct(State) from Count where country = "'+count
    ry+'"%";
  20.  
  21. SQL_Result3=SQL_Statement3.executeQuery(queryString3);
  22.  
  23. while(SQL_Result3.next())
  24. {
  25.  
  26.  
  27. %>
  28.  
  29. <option value="<%=SQL_Result3.getString("state")%>"><%=SQL_Result.getString("stat
    e")%></option>
  30. <%
  31.  
  32.  
  33. }}
  34. catch(SQLException e){
  35. System.out.println(e);
  36. }
  37. %>
  38.  

#2

أخي في الله الموضوع مشهور جدا و ان شاء الله ان لم تجد له هنا حل ستجد له الحل في اماكن كثير, و لكن دعني اساعدك...

أولا : دعني اكون صريح معاك الكود بتاعك سئ جدا للأسباب الاتيه :

1- صفحة ال Jsp يجب كتابة فيها tags فقط و إن لم تكن تجيد ال JSTL او ال EL فإنك تتضطر في هذه الحاله في كتابة كود جافا في اضيق الحدود مثلا تستدعى bean من scope يعني, يكون استخدامك لكود الجافا في صفحة ال Jsp في اضيق الحدود ( ويستحسن اساسا متكتبش جافا في صفحة ال Jsp )

2- اسوأ من كده انك كتبت كود بتاع ال database في صفحة ال jsp !!!!

حاول تقسم مشروعك على layers يعني ال business layer يكون فيها كل الكلاسس بتاعتك و ال persentation layer يكون فيها صفحات ال Jsp بتاعتك بتنادي على الدوال بتاعت البيزنس بتاعك (buisness methods ) في ال buisness objects بتاعتك

3- بالنسبه لو عاوز تتعلم اكتر عن الطريقه اللي بكلمك عنا اقرا كتاب Head First Servlets & Jsp

هتلاقيه هنا : http://pdfchm.com

4- بالنسبه للمشكله اللي انت واقع فيها, بص بقا يا سيدي هتيجي في التاج بتاع ال dropdown list الاول و تكتب

onchange="document.forms[0].submit()"

بس على شرط لما تيجي تعمل submit للفورمه من خلال زرار ال submit ( و يكون شكله كده

<input type="submit" name="submit" value="submit" />

تعمل if على هل ال request parameter اللي اسمه submit لا يساوي null , في الحاله دي انت ممكن تكتب الكود اللي بيعالج الفورم

يعني بمعني اخر الحاله الوحيده اللي انت بتبعت فيها قيمه لل input submit لما تدوس بالموس عليه , يعني الكود اللي احنا كتبناه بتاع الجافا اسكريبت في الdrop dwon list هيعمل submit للفورم بس موش هيبعت قيمه input submit

مثال بس ده معمول بالاسترتس حاول تفهمه

ده كود ال jsp

<html:select property="country"
						onchange="document.forms[1].submit()">
						<html:options name="countries" property="keys"
							labelName="countries" labelProperty="names" />
					</html:select>

و ده كود الجافا اللي هتكتب زيه في ال Servlet

		if (frm.getRegister() != null) {
			int country = 0;
			int city = 0;
			try{
				country = Integer.parseInt(frm.getCountry());
				city = Integer.parseInt(frm.getCity());
			}catch(NumberFormatException ex){}

			Customer customer = new Customer();
			customer.setUsername(frm.getUsername());
			customer.setPassword(frm.getPassword());
			customer.setFirstName(frm.getFirstname());
			customer.setLastName(frm.getLastname());
			customer.getHomeAddress().setCountry(country);
			customer.getHomeAddress().setGovernorate(city);
			customer.getHomeAddress().setPostalCode(frm.getPostalcode());
			customer.setPhoneNumber(frm.getPhoneno());

			customer.save();

			// check if the user come to this page by the system while
			// doing shopping
			if (request.getSession().getAttribute("path") != null) {
				forward = new ActionForward(request.getSession().getAttribute(
						"path").toString());
			} else
				forward = mapping.findForward("homepage");

			HttpSession session = request.getSession(false);
			if (session != null) {
				session.invalidate();
			}
			session = request.getSession();
			session.setAttribute("customer", customer);

		}

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

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

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

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

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