HTML: ปุ่มตัวเลือกแสดงรายการแบบเลื่อนลงหรือช่องข้อความตามการเลือก

สวัสดี ฉันต้องการสร้างฟังก์ชันง่ายๆ ที่เมื่อผู้ใช้คลิกที่ปุ่มตัวเลือก 'ใช่' มันจะแสดงรายการแบบเลื่อนลง แต่เมื่อผู้ใช้คลิกไม่ ก็จะแสดงฟิลด์ข้อความ จากนั้นค่าเหล่านั้นจะถูกแทรกลงในฐานข้อมูล

นี่คือปุ่มตัวเลือก รหัสรายการแบบเลื่อนลง และรหัสฟิลด์ข้อความของฉัน:

<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>

นี่คือรหัส Javascript ของฉัน:

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';
  }
}

เมื่อก่อนใช้งานได้ ฉันสามารถแทรกค่า (สำหรับทั้งดรอปดาวน์และฟิลด์ข้อความ) ลงในฐานข้อมูลได้ แต่ตอนนี้เมื่อฉันตรวจสอบอีกครั้งและพยายามแทรกค่าดรอปดาวน์ลงในฐานข้อมูล มันไม่ทำงาน ฉันสามารถแทรกได้เฉพาะค่าฟิลด์ข้อความเท่านั้น ฉันได้ทำการเปลี่ยนแปลงที่นี่และที่นั่น แต่ก็ยังไม่สามารถทำงานได้ ใครช่วยกรุณาชี้ให้เห็นสิ่งที่ฉันทำผิดที่นี่?


person Azie    schedule 10.09.2015    source แหล่งที่มา


คำตอบ (2)


คุณกำลังตั้งค่าการเลือกและอินพุตด้วย ชื่อ และ id เดียวกัน ฐานข้อมูลของคุณจะบันทึกค่าข้อความที่ป้อนเสมอเนื่องจากเป็นฟิลด์สุดท้ายที่ส่ง หากคุณส่งผ่าน ได้รับคุณมี

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

คุณควรเปลี่ยนชื่อและรหัสเช่น

<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
สวัสดี ฉันได้ลองวิธีแก้ปัญหาของคุณแล้วและใช้งานได้ ขอบคุณ! :) แต่ฉันแค่สงสัยว่าเป็นไปได้หรือไม่ที่จะตั้งค่านี้เป็นชื่อ & id เดียวกันและเก็บสองค่านี้ไว้ในคอลัมน์เดียวกัน เช่น ผู้เขียน แค่อยากทราบ - person Azie; 10.09.2015
comment
@Azie หากคุณใช้ฐานข้อมูล MySQL คุณสามารถจัดเก็บสองค่าโดยคั่นด้วยอักขระตัวเดียวเช่น - นั่นคือผู้เขียน B- อื่น ๆ การใช้ประโยชน์จากฟังก์ชัน implode() และ explode() เพื่ออ่านและเขียนในฐานข้อมูลของคุณ - person Rodney Salcedo; 11.09.2015

ฉันคิดว่าปัญหาคือเมื่อวัตถุถูกซ่อนแล้ว มันจะไม่ถูกส่งไปพร้อมกับแบบฟอร์มที่ส่ง

สิ่งที่ฉันแนะนำคือรายการฟิลด์ที่ซ่อนอยู่ที่กำลังรันอยู่ วางค่าลงในฟิลด์เหล่านั้นก่อนที่คุณจะส่งแบบฟอร์ม จากนั้นคุณก็จะมีข้อมูลทั้งหมดอยู่เสมอ ไม่ว่าคุณจะเลือกใช้มันเมื่อประมวลผลแบบฟอร์มใน PHP หรือไม่นั้นก็ขึ้นอยู่กับคุณ

person durbnpoisn    schedule 10.09.2015