将新字段添加到表单并将其保存到数据库

时间:2015-09-21 07:55:14

标签: javascript php jquery

第一个问题:

我想用按钮添加新字段,因此每次单击该按钮都会创建新字段。我尝试使用Jquery,但我是这种编程语言的新手,有人可以帮助我吗?我做得对吗?

HTML

<table>
    <tbody>
        <tr>
        <td>
        <?php
            $n = 0;
            $c = 0;
            echo "<Select>";
            do{
                if($c>10){$n="";}
                echo "<option>".$n.$c.":00</option>";
                echo "<option>".$n.$c.":30</option>";
                $c++;
            }while($c<24);
        ?>
        </td>
        <td><input type="text"></td>
        </tr>
    </tbody>
</table>
<center><button id="addrow">Add Row</button></center>

脚本

<script>
$(document).ready(function(){
    $("#addrow").click(function(){
        consoloe.log("asdasda");
        $(tbody).append('<tr><td><?php
            $n = 0;
            $c = 0;
            echo "<Select>";
            do{
                if($c>10){$n="";}
                echo "<option>".$n.$c.":00</option>";
                echo "<option>".$n.$c.":30</option>";
                $c++;
            }while($c<24);
            ?></td>
            <td><input type="text"></td>
            </tr>');
        });
    });
</script>

这是我得到的错误 enter image description here

enter image description here

此表格看起来像enter image description here

第二个问题:

我想我需要为这个字段提供一个名称或ID,因为我需要将它保存到数据库中,你能给我一些关于POST方法的建议,以便用mysqli插入多个记录吗?如何循环插入语句?

2 个答案:

答案 0 :(得分:1)

您可以通过纯javascript执行此操作,这是示例

   var yourHTML="<td><select>";
   yourHTML +="<option>--</option>";
   yourHTML +="<option>--</option>";
   yourHTML +="</select></td>";
   yourHTML +="<td><input type='text'></td>";

 function addRow(e){
            var tab=e;
            var rowCount=tab.rows.length;
            var row=tab.insertRow(rowCount);
            row.innerHTML=yourHTML;
            }

现在点击按钮

调用addRow()
$(document).ready(function(){
    $("#addrow").click(function(){
         addRow(document.getElementsByTagName("table")[0]);
       });
    });

LIVE http://jsfiddle.net/mailmerohit5/3outf4vm/

答案 1 :(得分:1)

关于您的代码的一件事:1。您还需要关闭&#34;选择&#34; &#34;&#34;

之前的元素

我的建议解决方案: 使用jQuery添加新字段就像这样 var path = require('path'); var app = require(path.resolve(__dirname, './app.js'));

然后在提交表单之前循环遍历表单,可以使用PHP。所有字段都在$ _POST [] suberglobal中$("#addRow").click(function(){ $(tbody).append('<tr><td><select><option>Test1</option><option>Test2</option></select> </tr></td>); });

您还可以使用AJAX提交表单并在jQuery中迭代它的字段:

foreach($_POST[] as $item){ //insert field in DB }

希望有所帮助!