Într-un articol mai vechi, exemplificam modul prin care se poate realiza filtrarea într-o tabelă, prin utilizarea unui combobox.
Un exemplu de sintaxă folosibilă pentru un astfel de obiect ar fi ca în exemplul de mai jos.
1 2 3 4 5 6 7 8 9 10 11 12 |
<select name="Comisia"> <---?php $query = "SELECT DISTINCT comisie FROM gestionar WHERE LENGTH(comisie)>0 ORDER BY comisie"; $results = mysqli_query($con, $query); while ($rows = mysqli_fetch_array($results)) { ?> <option <--?php IF ($rows['comisie'] == $Comisia) { ?> selected="selected" <--?php } ?> value='<--?php ECHO $rows['comisie']; ?>'><--?php ECHO $rows['comisie']; ?></option> <--?php } ?> </select> |
Dacă avem de realizat formulare de adăugare a unor noi înregistrări, dar şi de editare a acestora şi, dacă avem nevoie de mai multe combobox-uri, este eficientă realizarea unei funcţii.
De exemplu, dacă este necesar să updatăm nişte combobox-uri cu valori preluate din tabele, ţinând cont că avem aceleaşi elemente necesare, putem crea o funcţie care să fie utilizată în acele instanţe.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php function fc_Cbo_Editare($con, $numeCampSel, $numeCampTbl, $numeTabela, $campFiltru=NULL) { ?> <select name="<?php ECHO $numeCampSel;?>"> <?php $qry = "SELECT DISTINCT $numeCampTbl FROM $numeTabela WHERE LENGTH($numeCampTbl)>0 ORDER BY $numeCampTbl"; $rez = MYSQLI_QUERY($con, $qry); WHILE ($rows = MYSQLI_FETCH_ARRAY($rez)) { IF(IS_NULL($campFiltru)) {?> <option value="" SELECTED DISABLED hidden>-- Alegeţi <?php echo $numeCampSel;?> --</option> <option value="<?php ECHO $rows[$numeCampTbl]; ?>"><?php ECHO $rows[$numeCampTbl]; ?></option> <?php } else {?> <option <?php IF ($rows[$numeCampTbl] == $campFiltru) { ?> SELECTED="selected" <?php } ?> value='<?php ECHO $rows[$numeCampTbl]; ?>'><?php ECHO $rows[$numeCampTbl]; ?></option> <?php } } ?> </select> <?php } ?> |
- $numeCampSel – numele obiectului Combobox (de ex. Comisia)
- $numeCampTbl – numele campului care va fi preluat in Combobox (de ex. comisie)
- $numeTabela – numele tabelei din care se face extragerea valorilor ComboBox-ului (mai jos le regăsim stocate în variablele $nume_Tbl1, $nume_Tbl2)
- $campFiltru – campul extern rezultat din $_GET/$_POST ($Comisia). Implicit este clauza NULL, astfel că, dacă nu există – de ex. în cazul formularului de adăugare – să nu dea eroare.
Ex:*: fc_Cbo_Editare($con, ‘Comisia’, ‘comisie’, $nume_Tbl1, ‘$Comisia’ );
Formularul adecvat este redat mai jos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $nume_Tbl1="gestionar"; $nume_Tbl2="planificare"; ?> <form method="POST" action="" class="frm_add_url"> <label>Gestiunea</label> <?php fc_Cbo_Editare($con, 'Comisia', 'comisie', $nume_Tbl1, '$Comisia' );?> <hr> <label>Data</label> <?php fc_Cbo_Editare($con, 'Data_sust', 'data_verif', $nume_Tbl1, '$DataSust' );?> <hr> <label>Ora</label><input type="text" name="Ora" value="<?php IF(isset($rd_ed['Ora'])) {echo $rd_ed['Ora'];} else {'';} ?>"> <hr> <label>Platforma</label> <?php fc_Cbo_Editare($con, 'Platforma', 'Platforma', $nume_Tbl2, '$Platforma' );?> <hr> <label>Password</label><input type="text" name="Password" value="<?php IF(isset($rd_ed['Password'])) {echo $rd_ed['Password'];} else {'';} ?>"> <hr> <button type="submit" name="update">Editare</button> </form> |