Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tworzenie Radiobutton z przodu (PHP)

Pierwsze rozwiązanie:

To, co możesz zrobić, przy obecnym stanie, to umieścić potrzebne parametry w funkcji onclick znaczniki.

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

Problem:

Ale problem polega na tym, że nowa opcja zostanie naprawiona, w zależności od tego, co zakodujesz w pierwszym parametrze.

Nowe rozwiązanie:

To, co możesz zrobić, to dodać pole tekstowe tuż przed przyciskiem, aby dać użytkownikowi szansę na wprowadzenie preferowanej opcji.

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

Następnie utwórz skrypt, który utworzy nowy przycisk opcji wraz z tekstem wejściowym użytkownika:

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

};

Możesz sprawdzić to skrzypce na przykład.

Prawdziwy problem:

Chcesz na stałe przechowywać nowo dodane przyciski radiowe, ale najpierw uciekłeś się w JavaScript.

Rozwiązanie:

Aby na stałe zapisać nowo dodane przyciski radiowe, możesz je przechowywać w swojej bazie danych. Musisz ustrukturyzować bazę danych, która sprawi, że Twój formularz będzie dynamiczny.

Utwórz tabelę, powiedzmy radio_tb :

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

Następnie spróbuj wyświetlić je jako przyciski radiowe:

/* 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();

Możesz nadal używać podanego przeze mnie skryptu do wstawiania nowego przycisku opcji, ale musisz użyć Ajax Aby wstawić te nowo dodane opcje do bazy danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przyspieszyć działanie tego zapytania?

  2. Jak mogę utworzyć wartość z dwóch innych wartości w tej samej tabeli w moim SQL?

  3. Mysql FIND_IN_SET w klauzuli gdzie

  4. Znajdź drugą najwyższą pensję w najlepszy możliwy sposób

  5. Python:Jak uzyskać czas z obiektu datetime.timedelta?