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

الربط بين 2 Drob-Down Box في صفحة واحدة

بدأه SalehZubir في 25 سبتمبر 2010 · 9 رد · 711 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اولاً اتمنى ان يكون العنوان مناسب

قمت بعمل 2 Drob-Down Box الأولة تظهر قواعد البينات الموجودة داخل خادم Mysql والثانية تظهر الجداول دخل كل قاعدة بنائاً على ما اختاره من قاعدة في Drob-Down Box الأولة العملية كانت تعمل بشكل جيد عندما كانت كل Drob-Down Box في صفحة مستقلة

و ما اريده هو ان يكون الأثنان في صفحة وحدة ولكن المشكلة هي ان الـ Drob-Down Box الخاصة بالجداول لا تستطيع التعرف على على القاعدة المختارة

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

الكود المستخدم

<html>

<head>

<title>New Laborer</title>

</head>

<body>
<form action="new_laborer.php" method="post">
<?php

//------------------------------------------------------------------
$cts = mysql_connect("localhost", "root", ""); //Connect to server
if (!$cts)
  {
  die("Could not connect: " . mysql_error());
  }
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Database
$db_list = mysql_list_dbs($cts);
$db_count = mysql_num_rows($db_list);
$i = 0;

echo "<select name='databases'>";
while ($i < $db_count) 
  {
  echo "<option value='".mysql_db_name($db_list, $i)."'>" .mysql_db_name($db_list, $i). "</option>";
  $i++;
  }
echo "</select>";
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Tables
$onofdbs = $_POST["databases"];
$dbname = $onofdbs;
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

echo "<select name='table'>";
if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}
while ($row = mysql_fetch_row($result)) {
    echo "<option>".$row[0]."</option>";
}
echo "</select>";
//------------------------------------------------------------------


mysql_close($cts); //disconnect from server

?>
<input type="submit"/>
</form>
</body>

</html>

الملف الذي يحتوي على المشكلة للأطلاع

new_laborer.php

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

#2

أعتقد ان المشكلة هي في تنفيذ الـ Form على نفس الصفحة إن لم أكن مخطئ

لذلك أنتظر المساعدة من الأخوة في المنتدى

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

#3

أخي من الواضح أن الكود الذي وضعته هو كود الصفحة new_laborer.php أريد تأكيداً على ذلك ﻷن ذلك قد يؤثرعلى الجواب...

إن كنت محقاً فما عليك تعديله في الكود الخاص بك هو فقط أن تضيف هذه الجملة إليه

<select name="databases" onchange="submit()">

أي أن هذا هو كود الصفحة الخاصة بك بعد التعديل :

<html>

<head>

<title>New Laborer</title>

</head>

<body>
<form method="post">
<?php

//------------------------------------------------------------------
$cts = mysql_connect("localhost", "root", ""); //Connect to server
if (!$cts)
  {
  die("Could not connect: " . mysql_error());
  }
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Database
$db_list = mysql_list_dbs($cts);
$db_count = mysql_num_rows($db_list);
$i = 0;

echo "<select name='databases' onChange='Submit();'>";
while ($i < $db_count) 
  {
  echo "<option value='".mysql_db_name($db_list, $i)."'>" .mysql_db_name($db_list, $i). "</option>";
  $i++;
  }
echo "</select>";
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Tables
$onofdbs = $_POST["databases"];
$dbname = $onofdbs;
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

echo "<select name='table'>";
if (!$result) {
	echo "DB Error, could not list tables\n";
	echo 'MySQL Error: ' . mysql_error();
	exit;
}
while ($row = mysql_fetch_row($result)) {
	echo "<option>".$row[0]."</option>";
}
echo "</select>";
//------------------------------------------------------------------


mysql_close($cts); //disconnect from server

?>
<input type="submit"/>
</form>
</body>

</html>

جرب ذلك و أخبرنا بالنتيجة

بتوفيق الله..

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 25 سبتمبر 2010 في 22:51

Everything will be fine when we TALK LESS, DO MORE


#4

اولاً أعتذر عن تأخري في الرد

لأني كنت اقوم بوضع ردود ومن ثم لا تظر ولا أعلم ما السبب

اقتباس

أخي من الواضح أن الكود الذي وضعته هو كود الصفحة new_laborer.php أريد تأكيداً على ذلك ﻷن ذلك قد يؤثرعلى الجواب

نعم هو كود صفحة new_laborer.php

قمت بوضع الكود الذي اعطيتني أياه ومازلت المشكلة قائمة إلى الأن

تم تعديل هذه المشاركة بواسطة SalehZubir في 27 سبتمبر 2010 في 10:57

#5

تماماً أخي اظن أن الخطأ في الاستعلام الذي تقوم باحضار اسماء الجداول به

فعليك العمل على الطريقة التقليدية في هذه الحالة كالتالي مثلاً :

<html>

<head>

<title>New Laborer</title>

</head>

<body>
<form method="post">
<?php

//------------------------------------------------------------------
$cts = mysql_connect("localhost", "root", ""); //Connect to server
if (!$cts)
  {
  die("Could not connect: " . mysql_error());
  }
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Database
$db_list = mysql_list_dbs($cts);
$db_count = mysql_num_rows($db_list);
$i = 0;

echo "<select name='databases' onChange='Submit();'>";
while ($i < $db_count)
  {
  echo "<option value='".mysql_db_name($db_list, $i)."'>" .mysql_db_name($db_list, $i). "</option>";
  $i++;
  }
echo "</select>";
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Tables
if(isset($_POST['databases'])) {
$dbname = $_POST["databases"];
mysql_select_db($dbname);
$sql = "SHOW TABLES";
$result = mysql_query($sql);
}
echo "<select name='table'>";
if (!$result) {
    	echo "DB Error, could not list tables\n";
    	echo 'MySQL Error: ' . mysql_error();
    	exit;
}
while ($row = mysql_fetch_row($result)) {
    	echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
echo "</select>";

//------------------------------------------------------------------


mysql_close($cts); //disconnect from server

?>
<input type="submit"/>
</form>
</body>

</html>

جرب هذا و أخبرنا بالنتيجة

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 29 سبتمبر 2010 في 11:21

Everything will be fine when we TALK LESS, DO MORE


#6

قمت بوضع الكود الذي اعطيتني أياه ومازلت المشكلة قائمة إلى الأن

#7

تفضل أخي هذه المرة جربته بنفسي و هو يعمل بشكل جيد

<html>

<head>

<title>New Laborer</title>

</head>

<body>
<form method="post">
<?php

//------------------------------------------------------------------
$cts = mysql_connect("localhost", "root", ""); //Connect to server
if (!$cts)
  {
  die("Could not connect: " . mysql_error());
  }
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Database
$db_list = mysql_list_dbs($cts);
$db_count = mysql_num_rows($db_list);
$i = 0;

echo "<select name='databases' onChange='submit()'>";
while ($i < $db_count)
  {
  echo "<option value='".mysql_db_name($db_list, $i)."'>" .mysql_db_name($db_list, $i). "</option>";
  $i++;
  }
echo "</select>";
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Tables
if(isset($_POST['databases'])) {
$dbname = $_POST["databases"];
mysql_select_db($dbname);
$sql = "SHOW TABLES";
$result = mysql_query($sql);

}
$j=0;
echo "<select name='table'>";
if (!$result) {
		echo "DB Error, could not list tables\n";
		echo 'MySQL Error: ' . mysql_error();
		exit;
}
while ($row = mysql_fetch_row($result)) {
		echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
echo "</select>";

//------------------------------------------------------------------


mysql_close($cts); //disconnect from server

?>
<input type="submit"/>
</form>
</body>

</html>

كانت المشكلة فقط Case-sensitive أي من الواجب بدل أن تكون Submit يجب أن تكون جميع الأحرف صغيرة submit

بتوفيق الله..

Everything will be fine when we TALK LESS, DO MORE


#8

جزاك الله كل خير ورزقك من العلم ما ينفعك في دينك ودنياك

الكود يعمل ولله الحمد

ولكن توجد مشكلة بسيطة وهي

بعد ان اقوم بختيار القاعدة يعود Drob-Down Box لقاعدة الـبينات الأولة information_schema رغم ظهور للجداول التابعة للقاعدة المختارة بشكل صحيح

عموماً سأحول حل هذه المشكلة بنفسي إن شاء الله لأني اتعبتك معي بمافيه الكفاية

#9

بارك الله بك لا بأس صديقي هذه الفكرة بسيطة جداً

عدلت لك الكود لحل مشكلتك هذه :

<html>

<head>

<title>New Laborer</title>

</head>

<body>
<form method="post">
<?php

//------------------------------------------------------------------
$cts = mysql_connect("localhost", "root", ""); //Connect to server
if (!$cts)
  {
  die("Could not connect: " . mysql_error());
  }
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Database
$db_list = mysql_list_dbs($cts);
$db_count = mysql_num_rows($db_list);
$i = 0;

echo "<select name='databases' onChange='submit()'>";
while ($i < $db_count)
  {
  echo "<option value='".mysql_db_name($db_list, $i)."' ".($_POST['databases']==mysql_db_name($db_list, $i)?"selected":'').">" .mysql_db_name($db_list, $i). "</option>";
  $i++;
  }
echo "</select>";
//------------------------------------------------------------------

//------------------------------------------------------------------
//Drob-Down Box Tables
if(isset($_POST['databases'])) {
$dbname = $_POST["databases"];
mysql_select_db($dbname);
$sql = "SHOW TABLES";
$result = mysql_query($sql);

}
$j=0;
echo "<select name='table'>";
if (!$result) {
            	echo "DB Error, could not list tables\n";
            	echo 'MySQL Error: ' . mysql_error();
            	exit;
}
while ($row = mysql_fetch_row($result)) {
            	echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
echo "</select>";

//------------------------------------------------------------------


mysql_close($cts); //disconnect from server

?>
<input type="submit"/>
</form>
</body>

</html>

بتوفيق الله..

Everything will be fine when we TALK LESS, DO MORE


#10

نعم العملية نجحت ولله الحمد

وفقك الله لما يحبه ويرضه وسدد خطاك

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