Postupak izrade padajućeg izbornika(dropdown menu in PHP)
Ukoliko ste početnik kao i JA, kada budete radili neku aplikaciju zasigurno će vam zatrebati padajući izbornik koji prikazuje samo podatke koje je unio pojedini korisnik.. Nakon par dana traženja po netu, forumima i konzultacija s drugim programerima došao sam do traženog rješenja. Prvo će nam trebati funkcija id usera iz korisnika
// funkcija za čitanje user id iz session
function readUserId() {
if(!session_id()) session_start();
if(
isset($_SESSION["user_id"])
&&
!empty($_SESSION["user_id"])
) {
return $_SESSION["user_id"];
} else {
return false;
}
}
Kada smo to rješili trebati ćemo funkciju u kojoj definiramo što želimo u padajuem izborniku iz polja
function showHTMLDropdown($nazivPopisa,$popis,$izbor) {
?>
<div class="col-md-4">
<select class="form-control input-sm m-b-4" name="<?php echo $nazivPopisa; ?>" required="required">
<option value="">-- Odaberi Osobu --</option>
<?php
foreach($popis as $stavka)
{
echo '<option ';
if ($izbor == $stavka[0])
{
echo " selected='selected' ";
}
echo ' value="'.$stavka[0].'" >';
echo $stavka[1]." ".$stavka[2]; // ovdje se označava što će se vidjeti u padajućem izborniku tj ime i prezime
// pošto je ime i prezime razdvojeno moralimo smo stavit dvije $stavke kako
// dohvatili ime i prezime iz iste tablice...
echo '</option>';
echo "\n";
}
Nakon toga ostao nam je još samo padajući izbornik, a i njega imamo
function PadajuciIzbornik()
{
// izvrši SELECT na
$data = executeSelect($db, 'SELECT * FROM vwpogledTablicesImenomPrezimenomiPovezanomsDrugomTablicom');
// izvuci podatke kao asocijativno polje iz Baze
$data_arr = getDBData($data);
// izvrši SELECT na Osobama za padajući popis
$dataOsobe = executeSelect( $db,
'SELECT * FROM tablicaIzBaze(osobe) WHERE id_korisnik='.readUserId()); // važno je da ne bude pogled već tablica
// kad odvrtimo zadnji SELECT onda
// zatvori konekciju na bazu jer nam više ne treba
$db->close();
// trebamo za padajući izbornik Igrača
$popisOsoba_arr = getDBData($dataOsobe);
showHTMLDropdown('id',$popisOsoba_arr,0);
}