[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выпадающий список с данными из базы
Polina
Есть код. В итоге нужно получить следующее: выбрав из выпадающего списка Должность, Магазин, в выпадающем списке Сотрудник должен отобразится список сотрудников, которые соответствуют выбранной должности и магазину. В данный момент в выпадающих списках просто вывод данных из базы. Помогите пожалуйста решить проблему!!! Не знаю как быть :(

<?php
$shops = array();
$stafftypes = array();
$staff = array();

if(!isset($employee_id)) $employee_id = '';
if(!isset($stafftype_id)) $stafftype_id = '';
if(!isset($shop_id)) $shop_id = '';

$and1 = '';
$and2 = '';
$and3 = '';

if (isset($employee_id) && $employee_id != '') $and1 = "AND staff.employeeid = $employee_id";
if (isset($stafftype_id) && $stafftype_id != '') $and2 = "AND stafftypes.stafftypeid = $stafftype_id";
if (isset($shop_id) && $shop_id != '') $and3 = "AND shops.shopid = $shop_id";

$sql = "SELECT *
FROM shops
WHERE synchronize='true'
ORDER BY shopid;"
;
$result = mysql_query($db, $sql);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++){
$r = mysql_fetch_array($result, $i);
$shops[$r->shopid] = $r->name;
}

$sql = "SELECT
stafftypes.stafftypeid,
stafftypes.stafftypelevel,
stafftypes.stafftypename
FROM stafftypes
INNER JOIN staff ON stafftypes.stafftypeid = staff.type
INNER JOIN staffdepts ON staff.deptid = staffdepts.deptid
WHERE stafftypes.stafftypeid > 0
AND NOT staff.disabled

ORDER BY stafftypename"
;
$result = mysql_query($db, $sql);
$num = mysql_num_rows($result);
for ($i=0; $i<$num; $i++) {
$r = mysql_fetch_array($result, $i);
$stafftypes[$r->stafftypeid] = $r->stafftypename;
}
$sql = "SELECT
staff.employeeid,
staff.name
FROM staff
INNER JOIN stafftypes ON staff.type = stafftypes.stafftypeid
INNER JOIN staffdepts ON staff.deptid = staffdepts.deptid
WHERE staff.employeeid > 0
AND NOT staff.disabled
AND (stafftypes.staffTypeLevel + staffdepts.deptLevel) <
$user->level
ORDER BY name"
;
$result = mysql_query($db, $sql);
$num = mysql_num_rows($result);
for ($i=0; $i<$num; $i++) {
$r = mysql_fetch_array($result, $i);
$staff[$r->employeeid] = $r->name;
}
?>

<style type="text/css">
#dropMenu, #dropMenu ul {list-style:none;margin:0px;padding:0px;}
menuCat {background="" 0px 3px no-repeat;padding-left:12px;}
.menuCat span {cursor:pointer;font-weight:bold;}
.menuCat ul {display:none;}
</style>

<
ul id="dropMenu">
<
li class="menuCat"><span>Добавить в список</span>
<
ul>

<
li>
<
SELECT name="stafftype_id">
<
OPTION value="">все должности</OPTION>
<?PHP
foreach ($stafftypes as $key => $value) {
if ("$key" != "$stafftype_id") print "<OPTION value=\"$key\">$value</OPTION>\n";
else print "<OPTION value=\"$key\" selected>$value</OPTION>\n";
}?>
</SELECT>
</
li>

<
li>
<
SELECT name="shop_id">
<
OPTION value="">все магазины</OPTION>
<?PHP
foreach ($shops as $key => $value) {
if ("$key" != "$shop_id") print "<OPTION value=\"$key\">$value</OPTION>\n";
else print "<OPTION value=\"$key\" selected>$value</OPTION>\n";
}?>
</SELECT>
</
li>

<
li>
<
SELECT name="employee_id">
<
OPTION value="">все сотрудники</OPTION>
<?PHP
foreach ($staff as $key => $value) {
if ("$key" != "$employee_id") print "<OPTION value=\"$key\">$value</OPTION>\n";
else print "<OPTION value=\"$key\" selected>$value</OPTION>\n";
} ?>
</SELECT>
</
li>
<?php print "<INPUT type=\"button\" value=\"+\" title=\"Добавить в список\">\n";?>
</ul>
</
li>
</
ul>

<
script type="text/javascript">
plus="";
minus="";
dropMenu();
function dropMenu(){var c,d,e,j,i;c=new Array();d=document.getElementsByTagName('*');
e=new RegExp("(^|\\b)menuCat(\\b|$)");
j=0;
for(i=0;i<d.length;i++){
if(e.test(d[i].className)){c[j]=d[i];j++}}
for(i=0;i<c.length;i++){
var f=c[i].getElementsByTagName("span")[0];
f.onclick=function(){
var a,b;a=this.parentNode;b=a.getElementsByTagName("ul")[0];
if(b.style.display=="block"){a.style.backgroundImage="url("+plus+")";b.style.display="none"}
else{a.style.backgroundImage="url("+minus+")";b.style.display="block"}}}};
</
script>




Спустя 8 минут, 57 секунд (7.02.2011 - 16:53) two написал(а):
Polina
Ajax

Спустя 19 часов, 50 минут, 5 секунд (8.02.2011 - 12:43) Polina написал(а):
а в обход Ajax никак? почти не знаю его(

Спустя 1 час, 17 минут, 17 секунд (8.02.2011 - 14:01) two написал(а):
Polina
Можно и без.

В список Сотрудник сразу же добавляете всех сотрудников. При выборе полей Должность и Магазин в выпадающем списке Сотрудник оставляете только тех сотрудников, которые отвечают должности и магазину.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.