Chcę wyświetlić uprzednio wybrane i zapisane w bazie dane, ale z możliwością ich ponownej edycji/wyboru z listy/.
Mam funkcję jn:
<?php function klienci() { $wynik='<option value=""></option>'; $query="SELECT id, klient_id, status FROM klienci WHERE status='PROD'"; $result=mysqli_query($connect, $query); if($result) { while($dat=mysqli_fetch_assoc($result)) $wynik.='<option value="'.$dat['klient_id'].'">'.$dat['klient_id'].'</option>'; } return $wynik; } // wyświetlam listę <form method="POST" action=""> ... <input id="wybrany" type="hidden" value="'.$row['klient'].'"><select name="klient" size="1">'.klienci().'</select> ... </form> ?>
I dzięki poniższemu skryptowi na liście wyświetla się zapisany w bazie klient, czyli wszystko jest ok.
<script> $( document ).ready(function() { $('option').each(function(){ if (this.value == $('#wybrany').val()){ this.setAttribute('selected', 'selected'); } }); }); </script>
Ale problem pojawia się jak chciałbym zrobić to samo kilka razy, np: dodając analogiczne funkcje klienci_2() , klienci_3()
(plus powielone skrypty #wybrany2 i #wybrany3 ) i potem:
<input id="wybrany" type="hidden" value="'.$row['klient'].'"><select name="klient" size="1">'.klienci().'</select> <input id="wybrany2" type="hidden" value="'.$row['klient2'].'"><select name="klient2" size="1">'.klienci_2().'</select> <input id="wybrany3" type="hidden" value="'.$row['klient3'].'"><select name="klient3" size="1">'.klienci_3().'</select>
Tak utworzone listy wyświetlają "losowo" zapisane w bazie dane po każdym odświeżeniu.
Gdzie tkwi błąd?