Saya sedang mencipta aplikasi CRUD mudah menggunakan PHP. Pada halaman cipta, terdapat menu lungsur yang membolehkan pengguna memilih jenis lebuh raya yang ingin mereka masukkan maklumat. Pada halaman kemas kini saya ingin mengekalkan pilihan yang dibuat pengguna pada halaman cipta. Nilai yang dipilih oleh pengguna disimpan dalam objek JSON setempat. Saya datang dengan penyelesaian berikut:
<select name="route-type" id="route-type" required> <option value="" selected="true" disabled>What type of route is this?</option> <?php if( $highway['type'] == 'interstate') { ?> <option value="interstate" selected>Interstate</option> <option value="us-route">US Route</option> <option value="state-route">State Route</option> <?php } elseif ( $highway['type'] == 'us-route') { ?> <option value="interstate">Interstate</option> <option value="us-route" selected>US Route</option> <option value="state-route">State Route</option> <?php } elseif ( $highway['type'] == 'state-route') { ?> <option value="interstate">Interstate</option> <option value="us-route">US Route</option> <option value="state-route" selected>State Route</option> <?php } ?>
Masalahnya ialah ini kelihatan agak berulang dan perlu difaktorkan semula atau ditulis semula dalam beberapa cara. Ada apa-apa cadangan? Jelas sekali, jika terdapat 30 pilihan dalam senarai juntai bawah, maka adalah tidak betul untuk mempunyai 30 kemungkinan hasil dalam pernyataan if.
Berikut adalah penyelesaian (belum teruji):