【问题标题】:Insert dynamic input fields into database将动态输入字段插入数据库
【发布时间】:2015-06-21 03:04:16
【问题描述】:

我已成功添加和删除动态输入字段。但是,我在将输入字段的值插入数据库时​​遇到了问题。对此的任何意见将不胜感激。谢谢你。

输入字段

    <div id = "container"> 
        <p class = "origin-box">
            <label for = "Origin">From <span class = "box-number1">:</span></label>
            <input type = "text" name = "Origin" value = "" id = "Origin"/>
             <a class = "add-box" href = "#" name = "addBox"><img src = "Add Button.png" width = "35" height = "35" hspace = "20" vspace = "10" align = "middle"/></a>
        </p>

        <p class = "destination-box">
            <label for = "Destination">To <span class = "box-number2">:</span></label>
            <input type = "text" name = "Destination" value = "" id = "Destination"/>
        </p>
    </div>

用于动态添加/删除输入字段的 JQuery。

<script type="text/javascript">
jQuery(document).ready(function($){
var counter = 1;
var max_fields = 10;
$('.my-form .add-box').click(function(e){
    e.preventDefault();
    if (counter < max_fields){
        counter++;
        $('#container').append(
            '<div><strong>Link #' + counter + '</strong><br />' 
            + '<input id="field_' + counter + '" name="fields[]' + '" type="text" placeholder = "From" /><a href = "#" class = "remove-box"><img src = "Remove Button.png" height = "35" width = "35" align = "middle"/></a></div><br />' );
    }
});

$('.my-form').on('click', '.remove-box', function(e){
    $(this).parent().css( 'background-color', '#FF6C6C' );
    $(this).parent().slideUp("fast","linear", function() {
        e.preventDefault();
        $(this).closest('div').remove();    //$(this) references the closest <div>
        counter--;
    });
    return false;
});
});
</script>

点击提交按钮后。

&lt;p&gt;&lt;input id = "btnSubmit" type = "submit" name= "submit" value = "Submit" /&gt;&lt;/p&gt;

用于向数据库表中插入数据的 SQL 语句。

if(isset($_POST['btnSubmit'])){
     //create instance of database class
$db = new mysqldb();
$db->select_db();
//Check if user has actually added additional fields to prevent a php error
if ($_POST['fields']) {

    //get last inserted userid
    $inserted_user_id = $db->last_insert_id();

    //Loop through added fields
    foreach ( $_POST['fields'] as $key=>$value ) {

        //Insert into transport table
        $sql_transport = sprintf("INSERT INTO tbl_transport (Origin) VALUES ('%s')",
            mysql_real_escape_string($value));  
        $result_transport = $db->query($sql_transport);
        $inserted_transport_id = $db->last_insert_id(); 

        //Insert into mainclaim table
        $sql_mainclaim = sprintf("INSERT INTO tbl_mainclaim (transportID) VALUES ('%s')",
                               mysql_real_escape_string($inserted_transport_id));  
        $result_mainclaim = $db->query($sql_mainclaim);
    }
} else {    
    //No additional fields added by user
}
//disconnect mysql connection
$db->kill();
}

【问题讨论】:

  • 你的 if(isset($_POST['btnSubmit'])){ 应该是 if(isset($_POST['submit'])){ 因为 POST 值是通过输入名称检查的,而不是输入id
  • 输入更多信息,以及您遇到的错误。
  • @Epodax:感谢您了解这一点,疲惫的大脑经常会犯一些简单的错误。
  • 欢迎您 :) 而且您肯定是正确的,我自己也知道,介意我是否将其作为答案发布并可能为此收获一些积分? ;)
  • @Epodax 当然,伙计,继续。

标签: php jquery mysql


【解决方案1】:

你的

if(isset($_POST['btnSubmit'])){
    //Other code
}

应该是

if(isset($_POST['submit'])){ 
    //Other code
}

由于 POST 值是通过输入名称而不是输入 id 找到的

【讨论】:

    猜你喜欢
    • 2020-07-23
    • 2021-01-23
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 2015-10-18
    • 2014-12-13
    相关资源
    最近更新 更多