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

من فضلكم افيدونى (مثال لكود و قاعدة عن المدينة و القرية)

بدأه محمد الطاهر في 29 أكتوبر 2013 · 4 رد · 1,016 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عايز استعلم عن المدينة واسم داخل المدينة فى جدول واحد وكيفية عمل قائمة منسدلة الاختيار المدينة وبعد ابحث فى المدينة عن الاسم ....

التصميم بالدريم ويفر وقاعدة البيانات بـ mysql


-----------------------

 

ولو سمحتكم عايز اعمل قائمة منسدلة  للمدينة وبعد اختيار المدينة قائمة منسدلة للقرية التى داخل المدينة ومنها ابحث عن الاسم داخل القرية

 

بمعنى عندى المدينة والفرع ومن داخل الفرع ابحث عن اسم

 

ارجوكم ضرورى جدا

وجزاكم الله كل خير

وشكرا

#2

بأي لغة برمجة تريد عمل قائمة مندلسة ؟

عموما, قم بعمل SELECT * FROM table في القائمة الأولى (في الجافا مثلا, استخدم الدالة addItem لإضافة عنصر إلى الـ JComboBox)

و في القائمة الثانية قم بعمل :

SELECT * FROM table WHERE name = comboBox.getSelectedItem()

حيث getSelectedItem تُعيد العنصر الذي تم اختياره في القائمة الأولى.

تحياتي.

#3

انا متشكر جدا جدا على الاجابة

انا بستخدم لغة php والتصميم بالدريم ويفر

تم تعديل هذه المشاركة بواسطة محمد الطاهر في 29 أكتوبر 2013 في 13:36

#4

إذا, استخدم PHP مع AJAX حتى لا تحتاج إلى تحميل الصفحة في كل مرة.

استخدم XmlHttpRequest الذي يسمح بإنشاء http requests من أجل تبادل بيانات XML.

 

بداية, قم بإنشاء الكائن :

var xhr = null; 
 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	}

صفحة الـ index.html ستكون هكذا :

<html>
	<head>
		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
		<script type='text/JavaScript'>
 
	 		function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr
			}
 
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				var xhr = getXhr()
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						alert(xhr.responseText);
					}
				}
				xhr.open("GET","ajax.php",true);
				xhr.send(null);
			}
		</script>
	</head>
	<body>
		<input type='button' value='Dis quelque chose !' onclick='go()' />
	</body>
</html>

الدالة open تقوم بإنشاء اتصال مع السيرفر.

setRequestHeader تقوم بتعيين قيمة لـ HTTP header يتم إرسالها عندما يتم إرسال الـ request.

 

لنفترض مثلا أن الجدوال كالتالي :

CREATE TABLE `auteur` (
  `id` tinyint(4) NOT NULL auto_increment,
  `nom` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
);
 
insert into `auteur` values 
(1,'Clive Cussler'),
(2,'Harlan Coben'),
(3,'Franck Herbert'),
(4,'Pierre Bordages');
 
CREATE TABLE `livre` (
  `id` tinyint(4) NOT NULL auto_increment,
  `titre` varchar(50) NOT NULL,
  `idAuteur` tinyint(4) default NULL,
  PRIMARY KEY  (`id`)
) ;
 
insert into `livre` values 
(1,'Odyssee',1),
(2,'Sahara',1),
(3,'Dragon',1),
(4,'Une chance de trop',2),
(5,'Ne le dis a personne',2),
(6,'Disparu à jamais',2),
(7,'Dune',3),
(8,'La barriere de santaroga',3),
(9,'Les guerriers du silence',4),
(10,'La citadelle hyponeros',4),
(11,'Terra mater',4);

كود الـ PHP سيكون هكذا :

<html>
	<head>
		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
		<script type='text/javascript'>
 
			function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr;
			}
 
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('livre').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxLivre.php",true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id de l'auteur
				sel = document.getElementById('auteur');
				idauteur = sel.options[sel.selectedIndex].value;
				xhr.send("idAuteur="+idauteur);
			}
		</script>
	</head>
	<body>
		<form>
			<fieldset style="width: 500px">
				<legend>Liste liées</legend>
				<label>Auteurs</label>
				<select name='auteur' id='auteur' onchange='go()'>
					<option value='-1'>Aucun</option>
					<?
						mysql_connect("localhost","root","root");
						mysql_select_db("test");
						$res = mysql_query("SELECT * FROM auteur ORDER BY nom");
						while($row = mysql_fetch_assoc($res)){
							echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
						}
					?>
				</select>
				<label>Livres</label>
				<div id='livre' style='display:inline'>
				<select name='livre'>
					<option value='-1'>Choisir un auteur</option>
				</select>
				</div>
			</fieldset>
		</form>
	</body>
</html>

و هذا كود الأجاكس :

<?php
	echo "<select name='livre'>";
	if(isset($_POST["idAuteur"])){
		mysql_connect("localhost","root","root");
		mysql_select_db("test");
		$res = mysql_query("SELECT id,titre FROM livre 
			WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
		}
	}
	echo "</select>";
?>

القوائم المندلسة ستكون مرتبطة ببعضها البعض :

 

post-219439-0-03840100-1383045084_thumb.

 

للمزيد :

Web 2.0, allez plus loin avec AJAX et XMLHttpRequest

1
#5

بارك الله فيك

وجزاك الله عنا خير الجزاء

انا متشكر جدا

على هذه الافادة

 

ممكن لو سمحت معلش  انا لو عايز اعمل  بحث بعد الاختيار من القائمة الاولى اعمل بحث عن ناتج القائمة الثانية

 

بمعنى بعد اختيار المدينة من القائمة الاولى واختيار القرية من القائمة الثانية عايز اعمل بحث عن الاسماء التى فى القرية

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

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

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

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

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