PHP + Javascript динамический div для динамического добавления входных данных в форме - PullRequest
0 голосов
/ 06 февраля 2012

динамически добавляет дополнительный выпадающий список, который заполняется данными из MySQL, в div при нажатии кнопки.

<div id="dynamicDiv"><p>
        sqlconn();
        $sql="SELECT column_name FROM table";
        $result = mysql_query($sql);
        $num_rows = mysql_num_rows($result);
        echo "<select type=\"column_name\">";       
        for($i=0;$i<$num_rows;$i++){
            $table = mysql_fetch_array($result);
            echo "<option value='" . $table['column_name'] . "'>" . $table['column_name'] . "</option>";
        }
        echo "</select>";
        mysql_close($con);
</div>

<input type="button" value="+ Data" onClick="addInput('dynamicDiv');">

единственный метод, который я знаю, это написание скрипта, но я не могу делать скрипты php на скрипте (или я могу?). нужно запросить, чтобы заполнить добавленный выпадающий список.

var counter = 1;
var limit = 15;
function addInput(divName){
     if (counter == limit)  {
          alert("You have reached the limit of adding " + counter + " inputs");
     }
     else {
          var newdiv = document.createElement('div');
          newdiv.innerHTML = "whatever needs to be dynamically input on div";
          document.getElementById(divName).appendChild(newdiv);
          counter++;
     }
}

есть ли обходной путь для заполнения выпадающего списка в скрипте? очень признателен!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012
**This is the actual way the test goes and Change according to your table and use it . It will work as you expected**
«; echo 'countStud ='. count ($ arrayData). ';'; echo 'stud =' .json_encode ($ arrayData). ';'; эхо ""; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
    divCount =0;   
    function createDiv()
    {  

        var divTag  = document.createElement("div");
        var studList ="";
         studList += '<select id="BOX_'+divCount+'" name="BOX_'+divCount+'">';
         studList += '<option value="">--- Select ---</option>';
                     for(i=0;i<countStud;i++){
                        studList += '<option value="'+stud[i].stud_id+'">'+stud[i].stud_name+'</option>';
                     }
         studList += '</select>';
         divTag.innerHTML  = studList;
        document.getElementById('dynamicElements').appendChild(divTag);
        divCount++;

    }

 </script>
</head>

<body>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<div id="dynamicElements"></div>
 <input type="submit" value="Submit" />
 </form>
 <input type="button" onClick="createDiv()" value="Add"/>
</body>
</html>
0 голосов
/ 06 февраля 2012

У вас обычно есть 2 варианта

  • Создайте HTML-код для выпадающего списка при создании страницы и сделайте что-то вроде

, как в

<script type=...>
var selecthtml='<?php echo $selecthtml; ?>'
function addInput(divName){
     if (counter == limit)  {
          alert("You have reached the limit of adding " + counter + " inputs");
     }
     else {
          var newdiv = document.createElement('div');
          newdiv.innerHTML = selecthtml;
          document.getElementById(divName).appendChild(newdiv);
          counter++;
     }
}
</script>
  • Или посмотрите на AJAX, чтобы заполнить свой выбор.

Первое проще, второе чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...