Saya mendapat tag pilih dengan beberapa opsi dalam bentuk HTML:
(data akan dikumpulkan dan diproses menggunakan PHP)
Pengujian:
<select name="Testing">
<option value="1"> One
<option value="2"> Two
<option value="3"> Three
</select>
Apakah mungkin untuk opsi untuk membawa beberapa nilai seperti ketika pengguna memilih "Satu", maka beberapa nilai lain yang terkait dengan opsi ini akan ditulis ke Database.
Bagaimana saya harus mendesain select
Tag sehingga setiap opsi dapat memiliki satu dari satu nilai seperti ini:
<select name="Testing">
<option value="1" value="2010"> One
<option value="2" value="2122"> Two
<option value="3" value="0"> Three
</select>
Jawaban:
Salah satu cara untuk melakukan ini, yang pertama sebuah array, yang kedua sebuah objek:
Diedit (3 tahun setelah menjawab) untuk memasukkan kedua nilai ke dalam format JSON (menggunakan
JSON.stringify()
) karena keluhan bahwa jawaban bukti konsep saya "dapat membingungkan pengembang pemula".sumber
Saya benar-benar bertanya-tanya hari ini, dan saya mencapainya dengan menggunakan fungsi ledakan php, seperti ini:
Formulir HTML (dalam file yang saya beri nama 'doublevalue.php':
Tindakan PHP (dalam file yang saya beri nama doublevalue_action.php)
Seperti yang Anda lihat di bagian pertama kode, kami membuat kotak pilih HTML standar, dengan 2 opsi. Setiap opsi memiliki 1 nilai, yang memiliki pemisah (dalam contoh ini, '|') untuk membagi nilai (dalam hal ini, model dan warna).
Di halaman tindakan, saya meledakkan hasil ke dalam array, lalu memanggil masing-masing. Seperti yang Anda lihat, saya telah memisahkan dan memberi label pada mereka sehingga Anda dapat melihat efek yang ditimbulkannya.
Saya harap ini membantu seseorang :)
sumber
mungkin untuk memiliki beberapa nilai dalam opsi pilih seperti yang ditunjukkan di bawah ini.
Anda bisa mendapatkan nilai yang dipilih pada acara perubahan menggunakan jquery seperti yang ditunjukkan di bawah ini.
Anda dapat menemukan detail lebih lanjut di LINK ini
sumber
salah satu pilihan adalah menempatkan multi nilai dengan dipisahkan koma
Suka
dan di sisi server pisahkan mereka
sumber
Ketika saya perlu melakukan ini, saya membuat nilai data-nilai lain dan kemudian menggunakan js untuk menetapkannya ke input tersembunyi
sumber
Jika tujuan Anda adalah untuk menulis informasi ini ke database, lalu mengapa Anda harus memiliki nilai utama dan nilai 'terkait' di
value
atribut? Mengapa tidak mengirim nilai utama ke database dan membiarkan sifat relasional database mengurus sisanya.Jika Anda perlu memiliki beberapa nilai dalam
OPTION
s Anda , coba pembatas yang tidak terlalu umum:...
atau tambahkan literal objek (format JSON):
...
Itu sangat tergantung pada apa yang Anda coba lakukan.
sumber
beri nilai untuk setiap opsi seperti
di sisi server dalam kasus php, gunakan fungsi seperti meledak [array] = meledak ([pembatas], [nilai yang diposting]);
kode di atas mengembalikan array hanya memiliki angka dan ':' dihapus
sumber
Saya melakukan ini dengan menggunakan atribut data. Jauh lebih bersih daripada metode lain yang mencoba meledak, dll.
HTML
JS
sumber
Bagaimana dengan atribut data html? Itu cara termudah. Referensi dari w3school
Dalam kasus Anda
sumber
Gunakan pembatas untuk memisahkan nilai.
sumber
Dalam HTML
Untuk JS
ATAU UNTUK PHP
sumber
Parameter tag duplikat tidak diperbolehkan di HTML. Apa yang bisa Anda lakukan adalah
VALUE="1,2010"
. Tetapi Anda harus mengurai nilai di server.sumber
Alih-alih menyimpan opsi di sisi klien, cara lain untuk melakukannya adalah dengan menyimpan opsi sebagai elemen sub-larik dari larik asosiatif / terindeks di sisi server. Nilai dari tag pemilihan kemudian hanya akan berisi kunci yang digunakan untuk membedakan sub-larik.
Berikut beberapa contoh kode. Ini ditulis dalam PHP karena OP menyebutkan PHP, tetapi dapat disesuaikan dengan bahasa sisi server apa pun yang Anda gunakan:
PHP:
sumber
Ini mungkin atau mungkin tidak berguna bagi orang lain, tetapi untuk kasus penggunaan khusus saya, saya hanya ingin parameter tambahan dikirimkan kembali dari formulir ketika opsi dipilih - parameter ini memiliki nilai yang sama untuk semua opsi, jadi ... solusi saya adalah memasukkan input tersembunyi dalam formulir dengan pilihan, seperti:
Mungkin sudah jelas ... lebih jelas setelah Anda melihatnya.
sumber
Anda dapat menggunakan beberapa atribut
sumber