HTML: Tombol radio menampilkan daftar dropdown atau bidang teks berdasarkan pilihan

Hai Saya ingin membuat fungsi sederhana di mana ketika pengguna mengklik nilai tombol radio 'Ya' maka akan muncul daftar dropdown, tetapi ketika pengguna mengklik Tidak, itu akan menampilkan bidang teks. Kemudian nilai-nilai tersebut akan dimasukkan ke dalam database.

Ini adalah tombol radio saya, kode daftar dropdown dan kode bidang teks:

<td>Principle Author / Member</td>
<td>:</td>
<td>SEC member?
  <br/>
  <input type="radio" onclick="javascript:check();" name="radiocheck" id="yes">Yes
  <input type="radio" onclick="javascript:check();" name="radiocheck" id="no">No
  <br />
  <div id="checkyes" name="checkyes" style="display:none;">
    <select name="p_author" id="p_author">
      <option value="A">A</option>
      <option value="B">B</option>
      <option value="C">C</option>
      <option value="D">D</option>
      <option value="E">E</option>
      <option value="F">F</option>
      <option value="G">G</option>
      <option value="H">H</option>
      <option value="I">I</option>
      <option value="J">J</option>
      <option value="K">K</option>
      <option value="K">K</option>
      <option value="L">L</option>
      <option value="M">M</option>
      <option value="N">N</option>
      <option value="O">O</option>
      <option value="P">P</option>
      <option value="Q">Q</option>
      <option value="R">R</option>
      <option value="S">S</option>
      <option value="T">T</option>
    </select>
  </div>
  <div id="checkno" name="checkno" style="display:none">
    <input type="text" name="p_author" id="p_author" size="40" placeholder="Please enter here..">
  </div>
</td>

Ini kode Javascript saya:

function check() {
  if (document.getElementById('yes').checked) {
    document.getElementById('checkyes').style.display = 'block';
    document.getElementById('checkno').style.display = 'none';
  } else {
    document.getElementById('checkyes').style.display = 'none';
    document.getElementById('checkno').style.display = 'block';
  }
}

Ini berfungsi sebelumnya, saya dapat memasukkan nilai (untuk dropdown dan bidang teks) ke database tetapi sekarang ketika saya memeriksa ulang dan mencoba memasukkan nilai dropdown ke database, itu tidak berhasil. Saya hanya dapat memasukkan nilai bidang teks. Saya telah melakukan perubahan di sana-sini tetapi tetap tidak berhasil. Bisakah seseorang menunjukkan kesalahan saya di sini?


person Azie    schedule 10.09.2015    source sumber


Jawaban (2)


Anda mengatur pemilihan dan input dengan nama dan id yang sama, database Anda selalu menyimpan nilai teks input karena ini adalah kolom terakhir yang dikirim, jika Anda mengirimkannya melalui DAPATKAN yang Anda punya

your_page?radiocheck=on&p_author=B&p_author=text

Anda harus mengubah nama dan id yaitu

<select name="p_author1" id="p_author1">
...
</select>

...

<input type="text" name="p_author2" id="p_author2" size="40" placeholder="Please enter here..">
person Rodney Salcedo    schedule 10.09.2015
comment
Hai, saya sudah mencoba solusi Anda dan berhasil. Terima kasih! :) Tapi saya hanya ingin tahu apakah mungkin untuk menyetel ini sebagai nama & id yang sama dan menyimpan dua nilai ini di dalam kolom yang sama, misalnya, penulis. Hanya ingin tahu - person Azie; 10.09.2015
comment
@Azie jika Anda menggunakan database MySQL, Anda dapat menyimpan dua nilai yang dipisahkan oleh satu karakter, seperti -, yaitu B-penulis lain, memanfaatkan fungsi implode() dan meledak() untuk membaca dan menulis di DB Anda - person Rodney Salcedo; 11.09.2015

Saya pikir masalahnya adalah setelah objek disembunyikan, objek tersebut tidak diteruskan bersamaan dengan pengiriman formulir.

Apa yang saya sarankan adalah daftar bidang tersembunyi yang sedang berjalan. Masukkan nilai ke dalam bidang tersebut sebelum Anda mengirimkan formulir Anda. Maka Anda akan selalu mendapatkan semua informasinya. Apakah Anda memilih untuk menggunakannya saat memproses formulir di PHP, itu terserah Anda.

person durbnpoisn    schedule 10.09.2015