Javascript 如何将html表多行数据插入mysqli数据库

Javascript 如何将html表多行数据插入mysqli数据库,javascript,php,mysqli,Javascript,Php,Mysqli,这是我的javascript表代码 <script type="text/javascript"> var row = ""; $(function() { $('select').change(function() { $('#myTable').html(''); row ='<tr>\ <th>\Room</th>\

这是我的javascript表代码

<script type="text/javascript">
    var row = "";
    $(function() {
        $('select').change(function() {
            $('#myTable').html('');
            row ='<tr>\
            <th>\Room</th>\
            <th>\Floor</th>\
            <th>\Rent</th>\
            </td>\
            </tr>';
            row = $(row);
            $('#myTable').append(row);
            for (var i = 0; i<parseInt($(this).val()); i++) {
              var a = i+1;
              row =  '<tr>\
                    <td>'+a+'</td>\
                    <td>\
                    <select name="floor">\
                     <option value="1">0</option>\
                     <option value="2">1</option>\
                     <option value="3">2</option>\
                     <option value="3">3</option>\
                     </select>\
                    </td>\


                     <td>\
                        <input id="rent" name="rent" class="form-control required" required="required" placeholder="$" min="0" data-bind="value:replyNumber" type="text">       \
                    </td>\
                </tr>';
                row = $(row);
                $('#myTable').append(row);
            }
        });
    });
</script>
这是我的class.ads.php代码

public function postAd( $rent,$floor, $rooms) {
    try {
        for($i=0; $i < $rooms; $i++) { 
            $sql_insert1 = "INSERT INTO `room` (`Floor`, `rent`) 
                            VALUES "
                          . " ('{$floor}','{$rent}' )";
            $sql_insert2 = mysqli_query($this->_db, $sql_insert1);
        }

        if ($sql_insert2) {
            return true;
        }
    } catch (Exception $ex) {
        return false;
    }
}
公共功能邮递($rent,$floor,$rooms){
试一试{
对于($i=0;$i<$rooms;$i++){
$sql_insert1=“插入到'room'('Floor','rent'))
价值观”
“({$floor},{$rent}')”;
$sql\u insert2=mysqli\u查询($this->\u db$sql\u insert1);
}
if($sql\u insert2){
返回true;
}
}捕获(例外$ex){
返回false;
}
}

我的代码的问题是,每当我将数据插入数据库时,最后一行的数据都会多次插入数据库。

所以我花了一点时间才捕捉到它

ad post.process.php

调用函数时,如果($ad->postAd($floor,$rent,$rooms)),则传递3个变量

require_once './class.ads.php';
$rent = floatval(getFormValues('rent'));
$floor =   getFormValues('floor');
$rooms = getFormValues('rooms');
$ad = new Ads($mysql_connection);
if ($ad->postAd($floor,$rent,$rooms)) {
    header("location:./ad-success.php?" . $ts);
    exit;
}
class.ads.php

当您接收函数调用时,您正在接受4个变量,但顺序不正确

function postAd($rent, , $floor, $rooms)
{
    try {
        for ($i = 0; $i < $rooms; $i++) {
            $sql_insert1 = "INSERT INTO `room` (`Floor`, `rent`) VALUES "
                . "       ('{$floor}','{$rent}' )";
            $sql_insert2 = mysqli_query($this->_db, $sql_insert1);
        }

        if ($sql_insert2) {
            return true;
        }
    } catch (Exception $ex) {
        return false;
    }
}
功能邮递($rent,$floor,$rooms)
{
试一试{
对于($i=0;$i<$rooms;$i++){
$sql_insert1=“插入到'room'('Floor','rent`)值中”
“({$floor},{$rent}')”;
$sql\u insert2=mysqli\u查询($this->\u db$sql\u insert1);
}
if($sql\u insert2){
返回true;
}
}捕获(例外$ex){
返回false;
}
}
我将class.ads.php函数更改为如下所示:

function postAd($floor,$rent,$rooms)
{
    try {
        for ($i = 0; $i < $rooms; $i++) {
            $sql_insert1 = "INSERT INTO `room` (`Floor`, `rent`) VALUES "
                . "       ('{$floor}','{$rent}' )";
            $sql_insert2 = mysqli_query($this->_db, $sql_insert1);
        }

        if ($sql_insert2) {
            return true;
        }
    } catch (Exception $ex) {
        return false;
    }
}
功能邮递($floor,$rent,$rooms)
{
试一试{
对于($i=0;$i<$rooms;$i++){
$sql_insert1=“插入到'room'('Floor','rent`)值中”
“({$floor},{$rent}')”;
$sql\u insert2=mysqli\u查询($this->\u db$sql\u insert1);
}
if($sql\u insert2){
返回true;
}
}捕获(例外$ex){
返回false;
}
}

对不起,我犯了错误,但这不是问题所在。。。你能给我一些样品结果吗?比如,如果选择2个房间,填写表单,那么会将什么插入到数据库中?如果您选择4个房间,填写表格,那么会在数据库中插入什么?这将帮助我准确地解决正在发生的问题。还有,你说它一直被输入数据库,就像一遍又一遍?例如,如果我选择了3个房间,那么所有3行的数据都应该插入我的数据库我知道你正在尝试做什么,以及预期的结果,但是你能用一些示例数据详细说明实际结果吗?例如,如果选择3个房间,然后输入此数据集,则数据库将显示以下数据集。这将有助于解决代码中出现的问题。例如,如果我选择2个房间,那么在两行中,我选择1楼,租金将为400,在第二行中,我选择2楼,租金将为500,那么这两行的数据都应该插入数据库看起来您的HTML有点混乱。太多的
标签???
function postAd($rent, , $floor, $rooms)
{
    try {
        for ($i = 0; $i < $rooms; $i++) {
            $sql_insert1 = "INSERT INTO `room` (`Floor`, `rent`) VALUES "
                . "       ('{$floor}','{$rent}' )";
            $sql_insert2 = mysqli_query($this->_db, $sql_insert1);
        }

        if ($sql_insert2) {
            return true;
        }
    } catch (Exception $ex) {
        return false;
    }
}
function postAd($floor,$rent,$rooms)
{
    try {
        for ($i = 0; $i < $rooms; $i++) {
            $sql_insert1 = "INSERT INTO `room` (`Floor`, `rent`) VALUES "
                . "       ('{$floor}','{$rent}' )";
            $sql_insert2 = mysqli_query($this->_db, $sql_insert1);
        }

        if ($sql_insert2) {
            return true;
        }
    } catch (Exception $ex) {
        return false;
    }
}