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

ربط 2 قائمة منسدلة

بدأه Sameh11 في 18 يناير 2011 · 4 رد · 1,222 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

الاولي هي استخدام الاجاكس

الثانية عن طريق جافا سكريبت

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

اليكم الكود التالي

وفية

استعلام باسماء الاشخاص

واستعلام باسماء المنتجات

اريد لكل شخص يظهر منتجاتة فقط اي عند اختيار اسم الشخص يظهر المنتجات التي تخصة فقط وشكرا

<?php require_once('Connections/test.php'); ?> 
<?php 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")  
{ 
  if (PHP_VERSION < 6) { 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 
  } 

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 

  switch ($theType) { 
    case "text": 
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
      break;     
    case "long": 
    case "int": 
      $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
      break; 
    case "double": 
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; 
      break; 
    case "date": 
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
      break; 
    case "defined": 
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
      break; 
  } 
  return $theValue; 
} 
} 

mysql_select_db($database_test, $test); 
$query_Recordset1 = "SELECT products.product_name, customers.customer_name FROM products, customers WHERE customers.customer_id = products.customer_id"; 
$Recordset1 = mysql_query($query_Recordset1, $test) or die(mysql_error()); 
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 
$totalRows_Recordset1 = mysql_num_rows($Recordset1); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<form id="form1" name="form1" method="post" action=""> 
  <p> 
    <label for="customer_name">customer_name</label> 
    <select name="customer_name" id="customer_name" title="<?php echo $row_Recordset1['customer_name']; ?>"> 
      <?php 
do {   
?> 
      <option value="<?php echo $row_Recordset1['customer_name']?>"><?php echo $row_Recordset1['customer_name']?></option> 
      <?php 
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); 
  $rows = mysql_num_rows($Recordset1); 
  if($rows > 0) { 
      mysql_data_seek($Recordset1, 0); 
          $row_Recordset1 = mysql_fetch_assoc($Recordset1); 
  } 
?> 
    </select> 
  </p> 
  <p> 
    <label for="product_name">product_name</label> 
    <select name="product_name" id="product_name" title="<?php echo $row_Recordset1['product_name']; ?>"> 
      <?php 
do {   
?> 
      <option value="<?php echo $row_Recordset1['product_name']?>"><?php echo $row_Recordset1['product_name']?></option> 
      <?php 
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); 
  $rows = mysql_num_rows($Recordset1); 
  if($rows > 0) { 
      mysql_data_seek($Recordset1, 0); 
          $row_Recordset1 = mysql_fetch_assoc($Recordset1); 
  } 
?> 
    </select> 
  </p> 
</form> 
</body> 
</html> 
<?php 
mysql_free_result($Recordset1); 
?>
#2

اخى يمكن عمل هذا بلاجاكس وهى لا تختلف كثير فى السنتكس اجاكس عباره عن كلاس فى لغة الجافا سكريبت تابع معى فى القأئمه الاولى الخاصه بلعملاء اضف الحدث Onchange وهذا الحدث سوف يستدعى مثلا الداله get_products() ولنفترض اننا وضعنى id للقائمه الخاصه بلعملاء وسميناه

customer_menu وانا كتبت لك مثال بسيط لكى يوضح الامر اكثر

ملف html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>menu</title>

<!-- هنا ضمنا الملف الذى به دالتنا -->
<script type="text/javascript" src="lib.js"></script>
</head>

<body>
<select id="customer_menu" onchange="get_products()">
<option value="#">Select Customer</option>
<option value="1">Customer 1</option>
<option value="2">Customer 2</option>
<option value="3">Customer 3</option>
</select>

<div id="products_menu"></div>
</body>
</html>

ملف javascript

// JavaScript Document

// lib.js file;

function get_products()
{
	// نسخ الكلاس اللى المتغير لكى نستعمله فى برامجنا
	var ajax = new XMLHttpRequest();
	// الاى دى الذى سوف نضع فيه القائمه الخاصه بلعميل
	var products = document.getElementById('products_menu');

    /* هنا حددنا نوع الاتصال بلسيرفر لاننا نجلب بيانات وهنا اذا تفهم القليل من الجافا سوف ترى اننا حددنا من القائمه customer_menu الاندكس الذى تستخدمه القائمه حاليا*/
	ajax.open('GET','products.php?customer_id='+document.getElementById('customer_menu').selectedIndex);

	// هنا نتأكد اذا تم الاتصال وتمت عمليه الجلب بنجاح فأذا نجحت سوف ترسل البيانات اللى الطبقه products_menu
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4 && ajax.status == 200)
		{
			products.innerHTML = ajax.responseText;
		}
	}
}

ملف php

<?php
// products.php file

if(isset($_GET['customer_id']) && $_GET['customer_id'] != NULL)
{
	$query = sprintf('SELECT * FROM products WHERE customer_id="%d"',$_GET['customer_id']);
	$result = mysql_query($query,$GLOBALS['DB']) or die(mysql_error());

	echo '<select>';
	echo '<option value="#">Select anProduct</option>';

	while($row = mysql_fetch_assoc($result))
	{
		echo '<option value="'.$row['product_id'].'">'.$row['product_name'].'</option>';
	}
	echo '</select>';
}

?>

ارجو ان اكون افدتك اخوك Horus

1
#3

شكرا لك اخي ع المساعدة ..

عندي سؤاليين فقط لاني جديد في هذا المجال ..

ما معني

<!-- هنا ضمنا الملف الذى به دالتنا -->

تاني سؤال كيف اضع الثلاث اكواد الي حضرتك انشئتهم في صفحة واحدة كيف الترتيب ؟

#4
اقتباس
عندي سؤاليين فقط لاني جديد في هذا المجال .. ما معني <!-- هنا ضمنا الملف الذى به دالتنا -->

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

اقتباس
تاني سؤال كيف اضع الثلاث اكواد الي حضرتك انشئتهم في صفحة واحدة كيف الترتيب ؟

هايل انت جديد فى هذا المجال وتسأل عن شىء يتطلب اتقان 3 لغات برمجيه ؟

#5

جيد ! لا حل اذن ؟

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