Panel z rozwijanymi listami użytkowników i grup
|
K@iTO |
Dodany dnia 02.10.2011 12:01:49
|
Początkujący
Postów: 102
Data rejestracji: 08.08.2005 21:19
|
Witam tym razem ja potrzebuje drobnej pomocy.
Potrzebuje zrobić taki panel który będzie posiadał rozwijaną listę użytkowników oraz rozwijaną listę grup.
Po kliknięciu w imię/nazwisko/nazwa, rozwija się lista wszystkich użytkowników sortowana alfabetycznie. Efekt wybrania ma otworzyć profile.php?lookup= danego użytkownika.
Po kliknięciu w kategorię, rozwija się lista grup dostępnych w systemie po wybraniu grupy otwiera się lista profile.php?group_id która została wybrana
I tyle taki prosty panel. Może ktoś podać coś ciekawego?
Mam już następujący kod:
openside("list");
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",20");
while ($data = dbarray($result)) {
echo "<option>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
closeside();
Daje on nam listę użytkowników.
Teraz chciałbym aby dawał przejście na stronę użytkownika (profile.php)
Myślałem, że taki kod da radę:
openside("list");
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select onchange='self.location.href = this.value'>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",20");
while ($data = dbarray($result)) {
echo "<option value='".profile_link($data['user_id']."'>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
closeside();
Ale error
Jakieś pomysły?
_________
Następne zmienne udane ale... wybiera z listy i idzie do wyników wyszukiwania (co jest poniekąd dobre) ale wolał bym chyba odrazu przejść do jego profilu.
openside("ZNAJDŹ UŻYTKOWNIKA");
echo "<form action='".BASEDIR."search.php?' method='get'>\n";
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select name='stext'>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",200");
while ($data = dbarray($result)) {
echo "<option>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
echo "<input type='submit' class='submit' name='' value='szukaj' />";
echo "</form>\n";
echo "<div class='clear'></div>\n";
closeside();
PW od moderatora:
- Zmiana nazwy tematu - Pieka 02.10.2011 13:06
- Przeniesienie tematu - Pieka 02.10.2011 13:06
Edytowane przez K@iTO dnia 02.10.2011 14:52:51
|
|
|
|
Wścibski Gość |
Dodany dnia 23.12.2024 13:56:58
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Detektyw Monk |
Dodany dnia 02.10.2011 17:11:58
|
Przedszkolak
Postów: 52 Pomógł: 4 Ostrzeżeń: 1
v7.02.03 Data rejestracji: 04.06.2011 15:43
|
openside("list");
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select onchange='self.location.href = this.value'>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",20");
while ($data = dbarray($result)) {
echo "<option value='".profile_link($data['user_id'])."'>".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
closeside();
|
|
|
|
K@iTO |
Dodany dnia 02.10.2011 17:36:44
|
Początkujący
Postów: 102
Data rejestracji: 08.08.2005 21:19
|
Dzięki faktycznie zapomniałem tam ) przy opiton ale to dalej nie rozwiązuje problemu :/
tak to teraz wygląda
_________________________________
Dobra ale jak tak drugi raz wczytałem się w kod podałeś mi fajną myśl i działa użytkownik jak powinien oto kod na panel użytkownika
openside("ZNAJDŹ PROJEKTANTA");
echo "<form action='".BASEDIR."profile.php?' method='get'>\n";
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select name='lookup' onchange='profile.php?lookup = this.value'><option>Imię / Nazwisko / Nazwa</option>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",200");
while ($data = dbarray($result)) {
echo "<option value='".$data['user_id']."'>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
echo "<input type='submit' class='submit' name='' value='szukaj' />";
echo "</form>\n";
echo "<div class='clear'></div>\n";
closeside();
Teraz muszę zastosować wszystko to samo dla grupy użytkowników może któryś administrator podpowie jakie zmienne podać?
Edytowane przez Drecha dnia 02.10.2011 17:53:20
|
|
|
|
Detektyw Monk |
Dodany dnia 02.10.2011 18:37:55
|
Przedszkolak
Postów: 52 Pomógł: 4 Ostrzeżeń: 1
v7.02.03 Data rejestracji: 04.06.2011 15:43
|
openside("ZNAJDŹ PROJEKTANTA");
echo "<form action='".BASEDIR."profile.php?' method='get'>\n";
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0' AND user_groups='.1'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select name='lookup' onchange='profile.php?lookup = this.value'><option>Imię / Nazwisko / Nazwa</option>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",200");
while ($data = dbarray($result)) {
echo "<option value='".$data['user_id']."'>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
echo "<input type='submit' class='submit' name='' value='szukaj' />";
echo "</form>\n";
echo "<div class='clear'></div>\n";
closeside();
Zmieniasz wartość "1" na ID grupy w tej części kodu:
AND user_groups='.1'
|
|
|
|
K@iTO |
Dodany dnia 02.10.2011 23:19:20
|
Początkujący
Postów: 102
Data rejestracji: 08.08.2005 21:19
|
Nie nie o to chodziło.
Po pierwsze nie ma listy użytkowników grupy ;/
A po drugie chodzi o to aby w suwaku poniżej była lista grup a po wybraniu jednej był adres
profile.php?group_id=x
Tak więc jestem na następnym etapie
openside("ZNAJDŹ PROJEKTANTA");
echo "<form action='".BASEDIR."profile.php?' method='get'>\n";
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select name='lookup' onchange='profile.php?lookup = this.value'><option>Imię / Nazwisko / Nazwa</option>\n";
$result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." ORDER BY user_level DESC, user_name LIMIT ".$_GET['rowstart'].",200");
while ($data = dbarray($result)) {
echo "<option value='".$data['user_id']."'>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</option>\n";
}
echo "</select>\n";
}
echo "<input type='submit' class='submit' name='' value='szukaj' />";
echo "</form>\n";
echo "<form action='".BASEDIR."profile.php?' method='get'>\n";
if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
$orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
$result = dbquery("SELECT group_id, group_name FROM ".DB_USER_GROUPS." WHERE group_id='".$_GET['group_id']."'");
$rows = dbrows($result);
if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
if ($rows) {
$i = 0;
echo "<select name='lookup' onchange='profile.php?group_id = this.value'><option>Kategoria</option>\n";
$result = dbquery( "SELECT user_id, user_name, user_level, user_status FROM ".DB_USERS." WHERE user_groups REGEXP('^\\\.{$_GET['group_id']}$|\\\.{$_GET['group_id']}\\\.|\\\.{$_GET['group_id']}$') ORDER BY user_level DESC, user_name");
while ($data = dbarray($result)) {
echo "<option value='".$data['group_id']."'>\n".getgroupname($value)."</option>\n";
}
echo "</select>\n";
}
echo "<input type='submit' class='submit' name='' value='szukaj' />";
echo "</form>\n";
echo "<div class='clear'></div>\n";
closeside();
Error który otrzymuje to:
Notice: Undefined index: group_id in [b]administration/panel_editor.php(122)[/b] : eval()'d code on line 26
|
|
|
|
Detektyw Monk |
Dodany dnia 03.10.2011 18:21:46
|
Przedszkolak
Postów: 52 Pomógł: 4 Ostrzeżeń: 1
v7.02.03 Data rejestracji: 04.06.2011 15:43
|
Z tego co teraz rozumiem to chcesz panel, który pozwala na wybranie z listy grupy i przejście do niej.
Wybacz, ale nie mogę przerabiać Twojego kodu, bo jest w nim duży bałagan, a mój nick do czegoś zobowiązuje :)
Tutaj masz kod, który wyświetla grupy w postaci rozwijanej listy, po wybraniu i kliknięciu "Szukaj" przekierowuje na adres tej grupy
if (isset($_POST['usergroup'])) {
redirect(BASEDIR."profile.php?group_id=".$_POST['groupid']."");
}
openside("Szukane");
$result = dbquery("SELECT * FROM ".DB_USER_GROUPS." ORDER BY group_id");
echo '<b>Dane:</b><br>';
$data2 = dbrows($result);
if ($data2 != 0) {
echo "<form name='formularz' method='post' action='".FUSION_SELF."'>\n";
echo "<select name='groupid' class='textbox'>\n";
echo "<option value='#'>--Kategoria--</option>\n";
while ($data = dbarray($result)) {
echo "<option value='".$data['group_id']."'>".$data['group_name']."</option>\n";
}
echo "</select>\n<br />\n";
echo "<input type='submit' name='usergroup' value='Szukaj' class='button' />\n";
echo "</form>\n";
} else {
echo "Brak grup";
}
closeside();
|
|
|
|
K@iTO |
Dodany dnia 03.10.2011 21:19:56
|
Początkujący
Postów: 102
Data rejestracji: 08.08.2005 21:19
|
Dobrze super. I teraz tak jak na pierwszym obrazku połączę obie opcje, tzn. albo jedno albo drugi jedno szukaj
|
|
|
|
dix37 |
Dodany dnia 30.11.2011 19:10:44
|
Przedszkolak
Postów: 34 Ostrzeżeń: 3
v7.02.03 Data rejestracji: 10.10.2011 18:18
ZBANOWANY: Dożywotnio
|
Mógłby mi ktoś przerobić ten kod aby działał w panelu?
Nie wiem które " zamienić na ' żeby działało. Bo jak zamienię wszystkie to nie działa.
<div style="margin-top:5px">
<div class="quotetitle">
<b>Spoiler:</b>
<input type="button" value="Pokaż" style="width: 45px; font-size: 10px; margin: 0px; padding: 0px;" onclick="
if (this.parentNode.parentNode.getElementsByTagName('div')[1].style.display != '')
{
this.parentNode.parentNode.getElementsByTagName('div')[1].style.display = '';
this.innerText = '';
this.value = 'Ukryj';
}
else
{
this.parentNode.parentNode.getElementsByTagName('div')[1].style.display = 'none';
this.innerText = '';
this.value = 'Pokaż';
}
" />
</div>
<div class="quotecontent" style="display: none;">
<p>Tutaj treść</p>
</div>
</div>
|
|
|