Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membuat RadioButton di Front end (PHP)

Solusi Pertama:

Yang dapat Anda lakukan, dengan kondisi Anda saat ini, adalah meletakkan parameter yang diperlukan di dalam fungsi onclick Anda tag.

onclick="javascript:createRadioElement('new option', 'checked');"

Masalah:

Tetapi masalahnya adalah bahwa opsi baru akan diperbaiki, tergantung pada apa yang Anda hard-code di parameter pertama.

Solusi Baru:

Yang dapat Anda lakukan adalah menambahkan kotak teks tepat sebelum tombol Anda, sehingga Anda dapat memberikan kesempatan kepada pengguna untuk memasukkan opsi pilihan mereka.

<div id="option-div"></div> <!-- THIS IS WHERE THE NEW RADIO BUTTONS WILL BE PUT -->
<input type="text" id="new-option" placeholder="Insert New Option">
<input type="button" id="create" value="Create New Equipment">

Kemudian, buat skrip yang akan membuat tombol radio baru, bersama dengan teks input pengguna:

var optiondiv = document.getElementById('option-div'); /* GET THE DIV ELEMENT OF WHERE WE WILL PUT THE RADIO BUTTONS */

document.getElementById('create').onclick = function () { /* WHEN CREATE NEW EQUIPMENT BUTTON IS CLICKED */

    var input = document.createElement('input'), /* CREATE NEW INPUT ELEMENT */
        newopt = document.getElementById('new-option').value; /* GET THE INPUT OF THE USER */
        label = document.createElement('label'); /* CREATE A NEW LABEL ELEMENT */

    /* IF USER DID NOT INPUT A TEXT, 'No Entered Text' WILL BE THE DEFAULT VALUE */
    newopt = (newopt == '')?'No Entered Text':newopt;

    /* FILL OUT THE TAGS OF THE NEW INPUT ELEMENT */
    input.type = "radio";
    input.setAttribute("value", newopt);
    input.setAttribute("checked", true);
    input.setAttribute("name", "radio-name");

    /* PUT THE INPUT ELEMENT/RADIO BUTTON INSIDE THE LABEL */
    label.appendChild(input);
    label.innerHTML += newopt+'<br>';

    /* PUT THE LABEL ELEMENT INSIDE THE option-div DIV */
    optiondiv.appendChild(label);

    document.getElementById('new-option').value = ''; /* RESET THE TEXT FIELD */

};

Anda dapat memeriksa biola ini sebagai contoh.

Masalah sebenarnya:

Anda ingin menyimpan tombol radio yang baru ditambahkan secara permanen, tetapi Anda menggunakan Javascript terlebih dahulu.

Solusi:

Untuk menyimpan tombol radio yang baru ditambahkan secara permanen, Anda dapat menyimpannya di database Anda. Anda harus menyusun database yang akan membuat formulir Anda dinamis.

Buat tabel, katakanlah radio_tb :

radio_id | name |
---------+------+
    1    | opt1 |
    2    | opt2 |
    3    | opt3 |

Kemudian, coba tampilkan sebagai tombol radio:

/* ASSUMING YOU ESTABLISH YOUR CONNECTION TO $connection VARIABLE */
$stmt = $connection->prepare("SELECT radio_id, name FROM radio_tb");
$stmt->execute();
$stmt->bind_result($radioid, $name);
while($stmt->fetch()){
    echo '<label><input type="radio" name="equip" value="'.$radioid.'">'.$name.'</label>';
}
$stmt->close();

Anda dapat terus menggunakan skrip yang saya sediakan untuk memasukkan tombol radio baru, tetapi Anda harus menggunakan Ajax untuk memasukkan opsi yang baru ditambahkan ke database Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Percepat Pembaruan MySQL/Sisipkan Pernyataan

  2. Konstanta PHP tidak ditentukan

  3. MySQL 5.7.5+ dapatkan baris pertama untuk grup

  4. periksa apakah waktu (dengan zona waktu) terletak pada rentang waktu tertentu

  5. MYSQL - Apa itu kunci utama?