php - 如何将值从动态 html 表插入 MySQL 数据库?

标签 php jquery mysql

form

我有这种形式,用户可以根据自己的喜好添加多行。每个输入标签的名称都是使用 jquery 生成的; meals1...amount1,meals2...amount2 等等。

我的问题是如何将所有这些值插入到我的 MySQL 数据库中?

到目前为止我有这个功能:

function dbRowInsert($table_name, $form_data)
{
    // retrieve the keys of the array (column titles)
    $fields = array_keys($form_data);

    // build the query
    $sql = "INSERT INTO ".$table_name."
    (`".implode('`,`', $fields)."`)
    VALUES('".implode("','", $form_data)."')";

    // run and return the query result resource
    return mysql_query($sql);
}

HTML:

<div id ="ca_meals"><!--start of ca_meals-->
                <div class="container">
                <div class="row clearfix">
                <div class="col-md-12 column">
                <h3>Meals Form</h3>
                <div class="form-group">
                    <label for="ca_meals_date">Date:</label>
                    <input type="text" class="form-control" id="ca_meals_date" name="ca_meals_date" placeholder="Date">
                </div>
                <div class="form-group">
                    <label for="ca_meals">Purpose:</label>
                    <input type="text" class="form-control" id="ca_meals_purpose" placeholder="Purpose">
                </div>
                <table class="table table-bordered table-hover" id="tab_logic_meals">
                    <thead>
                        <tr >
                            <th class="text-center">
                                Meals
                            </th>
                            <th class="text-center">
                                Number of PAX
                            </th>
                            <th class="text-center">
                                Alloted Budget Per PAX
                            </th>
                            <th class="text-center">
                                Amount
                            </th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr id='meals0'>
                            <td>
                            <input type="text" name='ca_accommodate'  placeholder='Meals' class="form-control"/>
                            </td>
                            <td>
                            <input type="text" name='ca_meals_numberpax' placeholder='Number of PAX' class="form-control"/>
                            </td>
                            <td>
                            <input type="text" name='ca_meals_budgetpax' placeholder='Alloted Budget Per PAX' class="form-control"/>
                            </td>
                            <td>
                            <input type="text" name='ca_meals_amount' placeholder='Amount' class="form-control"/>
                            </td>
                        </tr>
                        <tr id='meals1'></tr>
                    </tbody>
                </table>
                <div class="form-group">
                    <label for="ca_total">Total:</label>
                    <input type="text" class="form-control" id="ca_total" disabled>
                </div>
                </div>
                </div>
                <a id="add_row_meals" class="btn btn-primary pull-left">Add Row</a><a id='delete_row_meals' class="pull-right btn btn-danger">Delete Row</a>
                </div>
            </div><!--end of ca_meals-->

这是我的 JQuery:

$("#add_row_meals").click(function(){
        $('#meals'+l).html("<td><input name='ca_meal"+l+"' type='text' placeholder='Meals' class='form-control input-md'  /> </td><td><input  name='ca_meals_numberpax"+l+"' type='text' placeholder='Number of PAX'  class='form-control input-md'></td><td><input  name='ca_meals_budgetpax"+l+"' type='text' placeholder='Alloted Budget Per PAX'  class='form-control input-md'></td><td><input  name='ca_meals_amount"+l+"' type='text' placeholder='Amount' class='form-control input-md'></td>");
        $('#tab_logic_meals').append('<tr id="meals'+(l+1)+'"></tr>');
        l++; 
        });
        $("#delete_row_meals").click(function(){
         if(l>1){
         $("#meals"+(l-1)).html('');
         l--;
         }
        });

最佳答案

通常它是通过传递带有字段名称的数组或索引来完成的。
比如,在 JavaScript 中,当您为名称添加 DHTML 字段时,将其命名为 meals[]
在 PHP 中,$_POST['meals'] 将包含一个数组。
另一种方式 - 索引。比如,当您使用 Javascript 创建一个新字段时,为其指定一个新名称,例如 meals_1meals_2 等。然后在 PHP 中循环使用它们。

对于第一种情况,使用 meals[],POST 请求如下:

 &meals[]=aaa&meals[]=bbb&meals[]=ccc&amount[]=1&amount[]=2&amount[]=3

使用 meals[] 的 PHP 代码示例如下:

for($i=0;$i<count($_POST['meals']);$i++)
{
    $sql = "INSERT INTO ... SET
               `meals` = ". $_POST['meals'][$i].", 
               `amount` = ". $_POST['amount'][$i].",
            // etc
}

关于php - 如何将值从动态 html 表插入 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28005548/

相关文章:

javascript - 在 Slider Bootstrap Carousel 中获取高度和宽度特定的 Div

java - org.apache.jasper.JasperException : Unable to compile class for JSP issue in dynamic web project

java - 为什么 INSERT 查询在此 HttpServer 代码中不起作用

mysql - 在mysql中转换不规则日期

php - 在哪里检查 INSERT 语句的成功或失败?

php - Smarty 和 SmartyBC 类之间的区别

javascript - JQuery 在对话框加载时运行 Javascript

javascript - 也可以阻止在输入类型编号中输入负值的 Angular 方式(在复制粘贴和增加、减少时)

php - 拉拉维尔 5.3 : Routes in layout views

php - &lt;input&gt; 添加了 padding-left 是一个太大的超链接