Mysql
 sql >> база данни >  >> RDS >> Mysql

Създаване на RadioButton в предния край (PHP)

Първо решение:

Това, което можете да направите, с текущото си състояние, е да поставите необходимите параметри във функцията на вашия onclick тагове.

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

Проблем:

Но проблемът е, че новата опция ще бъде коригирана в зависимост от това какво сте кодирали в първия параметър.

Ново решение:

Това, което можете да направите, е да добавите текстово поле точно преди вашия бутон, така че да можете да дадете възможност на потребителя да въведе предпочитаната от тях опция.

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

След това създайте скрипт, който ще създаде нов бутон за избор, заедно с въведения текст от потребителя:

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

};

Можете да проверите тази цигулка за пример.

Истинският проблем:

Искате да съхраните за постоянно новодобавените бутони за избор, но първо сте използвали Javascript.

Решение:

За да съхраните новодобавените радио бутони за постоянно, можете да ги съхраните във вашата база данни. Трябва да структурирате база данни, която ще направи вашия формуляр динамичен.

Създайте таблица, да речем radio_tb :

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

След това опитайте да ги покажете като радио бутони:

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

Можете да продължите да използвате скрипта, който предоставих за вмъкване на нов бутон за избор, но трябва да използвате Ajax за да вмъкнете тези новодобавени опции във вашата база данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите дали дадени данни съществуват в множество таблици (всички от които имат една и съща колона)?

  2. ГРЕШКА В Mysql 1241 (21000):Операнд трябва да съдържа 1 колона(и)

  3. Дублирани имена на колони в SQL заявка

  4. MySQL User Defined Функция за изпращане на Windows съобщение

  5. Грешка при кодиране в XML файл, генериран от PHP