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

اللي عنده خبره في عمل قوائم تعتمد على بعضها

بدأه توشيبا في 8 أبريل 2011 · 12 رد · 830 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لو سمحتوا انا محتاجة اعمل drop down list راح تحوي اسماء الاقسام من احد الجداول بالdata base

ومحتاجة اعمل drop down list ثانية تحوي اسماء الموظفين طبعا راح تعتمد على القاائمة الاولى بحيث انه اذا غير اسم القسم يتغيرون الموظفين

وفي جدول الموظفين عندي id تبع الاقسام كا forign key

بالنسبة للقائمة الاولى سهلة مافيها مشكلة لكن كيف اعمل القائمة الثانية

وهل استطيع ان اعملها بالphp

لاني لما بحثت وبحثت مالقيت اي شي عنها

#3

شفت الكود لكن بصراحة

مدري كيف يشتغل بالضبط اقصد ما استوعبته

وانا بسأل اقدر اسوي القوائم فقط بالphp او لازم جافاسكريبت تدخل في الموضوع

لاني راح اخذ البيانات اللي في القوائم من الdata base

تم تعديل هذه المشاركة بواسطة توشيبا في 9 أبريل 2011 في 01:34

#4

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

ستحتاجين استدعاء حدث javascript واحد على الأقل لعمل الفكرة بالطريقة التقليدية

مثال :

<form action="" method="POST">
<select name="dept" onchange="submit();">
/// insert php code here to fill this drop down with departments
</select>
<br>
<select name="emp">
// fill this select with employers name as options
</select>
</form>

طبعا في القائمة الأولى يتم تعبئتها من قاعدة البيانات باسماء الأقسام و معرفاتها

وعند كل تبديل في القسم سيتم عمل تحديث refresh للصفحة تلقائياً و عليك في ذات الصفحة استقبال المتغير

$_POST['dept']

واستدعاء الموظفين من قاعدة البيانات بحسب قيمة هذا المتغير

و بعد أن يتم الاستدعاء تقومين بملأ البيانات في قائمة الموظفين

جربي عمل ذلك و اخبرينا إن احتجت للمساعدة مع عرض كود المحاولة الخاصة بك لتصحيحه

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

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 9 أبريل 2011 في 01:53

Everything will be fine when we TALK LESS, DO MORE


#5

طيب الجافا سكريبت ايش يصير فيها

لانه مو راضي يمشي لي $_POST['dept']

اذا صارت في نفس الصفحة

#6

الله يعافيكم ودي افهم ايش اكتب في الجافا سكريبت حتى انزل شغلي

ازمتني هذي المشكلة

#7

لقد كتبت لك القسم الذي ستحتاجينه من الـ javascript لن تحتاجي لأكثر من الحدث onchange في القائمة الاولى يتم استدعاء submit عنده

سأعطيك مثال بسيط عن الطريقة :

<?php
$con = mysql_connect('host','username','password');
mysql_select_db('db_name',$con);
$result = mysql_query("select * form dept_table");
?>
<form action='' methot='POST'>
<select name='dept' onchange='submit()'>
<option value=''>select your department</option>
<?php
while($dept = mysql_fetch_array($result)) {
echo "<option value='".$dept['id']."'>".$dept['name']."</option>";
}
?>
</select>
<br><br>
<select name='emp'>
<option value=''>select your name</option>
<?php
if(isset($_POST['dept'])) {
$sql = "select * from emp_table where dept_id='$_POST[dept]'";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res)) {
echo "<option value='".$row['id']."'>".$row['name']."</option>";
}
}
?>
</select>
</form>

هذا مثال سريع يمكنك الصياغة عليه

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

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 11 أبريل 2011 في 00:15

Everything will be fine when we TALK LESS, DO MORE


#8

طيب اخوي انا مو فاهمة ايش قصدك ب

onchange='submit()'>

ممكن تفهمنيها

وربي يعافيك

#9

سويت نفس شغلك اخوي

اشتغلت فقط القائمة الاولى

القائمة الثانية ماتطلع اي شي

وهذا الكود

<?php
mysql_connect("localhost", "root", "")or die("cannot connect");
mysql_select_db("h")or die("cannot select DB");

?> 
<form name='form1' methot='POST'><? 
mysql_query("set names 'utf8'");
$deps = mysql_query("SELECT `D_id`, `D_name` FROM `department`");
echo "القسم:<br />";
echo "<select name='department' onchange=\'submit()\'>";
 echo "<option value=\"\">اختر قسم</option>";  
while($dep = mysql_fetch_array($deps))
{

    echo "<option value=\"{$dep['D_id']}\">{$dep['D_name']}</option>";  

}
echo "</select>";  
?> 
</select> 
<br><br> 
<select name='emp'> 
<?php 
echo "الموظف:<br />";
echo "<option value=''>اختر الموظف</option> ";
if(isset($_POST['department'])) { 
$sql =mysql_query("SELECT 'H_id', 'H_fname', 'H-mname', 'H_lname' from hesbah_user where D_id='$_POST[department]'"); 
while($row = mysql_fetch_array($sql)) { 
echo "<option value=\"{$row['H_id']}\">{$row['H_fname']}</option>"; 
} 
} 
?> 
</select> 
</form>
#10

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

جربي هذا الكود بعد التعديل :

<?php
mysql_connect("localhost", "root", "")or die("cannot connect");
mysql_select_db("h")or die("cannot select DB");

?> 
<form name='form1' method='POST'><? 
mysql_query("set names 'utf8'");
$deps = mysql_query("SELECT `D_id`, `D_name` FROM `department`");
echo "القسم:<br />";
echo "<select name='department' onchange='submit()'>";
 echo "<option value=\"\">اختر قسم</option>";  
while($dep = mysql_fetch_array($deps))
{

	echo "<option value=\"{$dep['D_id']}\">{$dep['D_name']}</option>";  

}
?> 
</select> 
<br><br> 
<select name='emp'> 
<?php 
echo "الموظف:<br />";
echo "<option value=''>اختر الموظف</option> ";
if(isset($_POST['department'])) { 
$sql =mysql_query("SELECT `H_id`, `H_fname`, `H-mname`, `H_lname` from hesbah_user where D_id='$_POST[department]'"); 
while($row = mysql_fetch_array($sql)) { 
echo "<option value=\"{$row['H_id']}\">{$row['H_fname']}</option>"; 
} 
} 
?> 
</select> 
</form>

الأخطاء التي تم اصلاحها :

1- في الـ form لديك خطأ في كتابة كلمة method حيث تم كتابتها methot وبالتالي البيانات كانت ترسل بـ GET وليس POST

2- تم ازالة \ الموجودة عند التابع submit لعدم الحاجة لها

3- تم استبدال كل ' single quote موجودة في الـ query الثانية (الخاصة باستدعاء اسماء الموظفين) بـ ` ﻷن وضع ' على اسماء الحقول يؤدي لكتابة الكلمة الموجودة بين الـ ' بدلا من كتابة قيمة الحقل

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

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

Everything will be fine when we TALK LESS, DO MORE


#11

اشتغل لكن فيه مشكلة

لما اختار اسم القسم

مايطلع في نفس القائمة بل يبقى كلمة اختر قسم ثابتة

مع انه يتغير اسم الموظفين

#12
<?php
mysql_connect("localhost", "root", "")or die("cannot connect");
mysql_select_db("h")or die("cannot select DB");

?> 
<form name='form1' method='POST'><? 
mysql_query("set names 'utf8'");
$deps = mysql_query("SELECT `D_id`, `D_name` FROM `department`");
echo "القسم:<br />";
echo "<select name='department' onchange='submit()'>";
 echo "<option value=\"\">اختر قسم</option>";  
while($dep = mysql_fetch_array($deps))
{

    	echo "<option value=\"{$dep['D_id']}\" ".($_POST['department']==$dep['D_id'] ? "selected='selected'" : '')." >{$dep['D_name']}</option>";  

}
?> 
</select> 
<br><br> 
<select name='emp'> 
<?php 
echo "الموظف:<br />";
echo "<option value=''>اختر الموظف</option> ";
if(isset($_POST['department'])) { 
$sql =mysql_query("SELECT `H_id`, `H_fname`, `H-mname`, `H_lname` from hesbah_user where D_id='$_POST[department]'"); 
while($row = mysql_fetch_array($sql)) { 
echo "<option value=\"{$row['H_id']}\">{$row['H_fname']}</option>"; 
} 
} 
?> 
</select> 
</form>

Everything will be fine when we TALK LESS, DO MORE


#13

مشكور اخوي وماقصرت

بالنسبة للمشكلة القوائم انحلت والحمد لله

لكن عندي مشكلة ثانية

القوائم المنسدلة عندي

راح تكون في صفحة تحديث

لما بيدخل لها المستخدم اول مره المفروض يختار القسم والموظف وتتحدث البيانات في الداتابيس

لكن اذا دخل المستخدم نفسه للهذي الصفحة مرة ثانية

ممكن يغير اختياراته اللي اول مره

والمفروض تكون القيم اللي اختارها اول مره كقيم افتراضية في القائمة

وبصراحة

ماعرفت اسويها

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

واطلع له الليست لو كنا محتاج يغير

ونفس الشي للموظف

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

ماتشتغل وتطلع له صفحة بيضاء

وهذا الكود

<!DOCTYPE HTML SYSTEM>
<html dir=rtl>
<?php 
mysql_connect("localhost", "root", "")or die("cannot connect"); 
mysql_select_db("h")or die("cannot select DB"); 

?>  
<form name='form1' method='POST' action = "getCi.php"><?  
$sn=$_GET['Sn'];
mysql_query("set names 'utf8'");
$up= mysql_query("select * from complaint where Sn ='$sn'");
$upd=mysql_fetch_array($up);
$H_id=$upd[H_id];
$D_id=$upd[D_id];
$de="";
if ($D_id != "")
{
mysql_query("set names 'utf8'");
$dd= mysql_query("select D_name from department where D_id = '$D_id'");
$ddd=mysql_fetch_array($dd);
$de=$ddd[D_name];
echo "سبق وان اخترت القسم ";
echo $de;
echo "ان كنت تريد التغير";
} 
mysql_query("set names 'utf8'"); 
$deps = mysql_query("SELECT `D_id`, `D_name` FROM `department`"); 
echo "القسم:<br />"; 
echo "<select name='department' onchange='submit()'>";

 echo "<option value= '$D_id'>اختر قسم</option>";   
while($dep = mysql_fetch_array($deps)) 
{ 
$D_id=$dep['D_id'];
$D_name=$dep['D_name'];
        echo "<option value=\"{$D_id}\" ".($_POST['department']==$D_id ? "selected='selected'" : '')." >{$D_name}</option>";   

} 
?>  
</select>  
<br><br> 
<?php 
if ($H_id != "")
{
mysql_query("set names 'utf8'");
$hh= mysql_query("select H_fname, H_mname, H_lname from hesbah_user where H_id = '$H_id'");
$hhh=mysql_fetch_array($hh);
echo "سبق لك ان اخترت الموظف";
echo $hhh[H_fname];
echo $hhh[H_mame];
echo $hhh[H_lname];
echo "ان كنت تريد التغيير";
} ?> 
<select name='emp'>  
<?php  

echo "الموظف:<br />"; 
echo "<option value='$H_id'>اختر الموظف</option> "; 
if(isset($_POST['department'])) {  
$sql =mysql_query("SELECT `H_id`, `H_fname`, `H_mname`, `H_lname` from hesbah_user where D_id='$_POST[department]'");  
while($row = mysql_fetch_array($sql)) {  
echo "<option value=\"{$row['H_id']}\">{$row['H_fname']}</option>";  
}  
}  
?>  
</select>  
<p align="center">
               <input type = "submit" value ="تعديل" />
               <input type ="reset"  value = "الغاء الامر" />
</form>
</html>

تم تعديل هذه المشاركة بواسطة توشيبا في 14 أبريل 2011 في 12:35

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