如何将动态创建的表中的数据存储到mysql

时间:2014-08-27 09:48:11

标签: php dynamic-tables

我浏览了网站上几乎所有以前的主题,并看到了如何使用单元名称&和/或从单元格向mysql添加值的选项。数组变量。但是我找不到类似于我用来动态创建表行的innerhtml方法。请帮忙。

这是我的HTML

<form action="test.php" method="post" name="f"> 
    <table class="inventory">
        <thead>
            <tr>
                <th><span contenteditable>SL. NO.</span></th>
                <th><span contenteditable>DESCRIPTION / PURPOSE</span></th>
                <th><span contenteditable>AMOUNT</span></th>

            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
<INPUT type="submit" value="Insert" name="submit" />
</form>
<a class="add">+</a>

当我点击+时,使用javascript生成一个新行。当我点击&#39; - &#39;该行被删除。

这是我点击事件的javascript

function onClick(e) {
    var element = e.target.querySelector('[contenteditable]'), row, rowCount, targetTbl;

    element && e.target != document.documentElement && e.target != document.body && element.focus();

    if (e.target.matchesSelector('.add')) {

        document.querySelector('table.inventory tbody').appendChild(generateTableRow());
    }
    else if (e.target.className == 'cut') {
        row = e.target.ancestorQuerySelector('tr');

        row.parentNode.removeChild(row);
    }

    updateInvoice();
}

这是我的添加行功能

function generateTableRow() {

var emptyColumn = document.createElement('tr');

emptyColumn.innerHTML = '<td><a class="cut">-</a><span id="slnocell[]" contenteditable></span></td>' +
    '<td><span id="desccell[]" contenteditable></span></td>' +
    '<td><span data-prefix>Dhs </span><span id="amtcell[]" contenteditable>0.00</span></td>';

return emptyColumn;
}

这是我的php

<?php

require('application_top.php');

GLOBAL $mysql_db;

$mysql_db = new Database();

$mysql_db->mysqldb_connect(DBHOST,DBPORT,DBNAME,DBUSER,DBPASS);

if(isset($_POST['submit']))
{
 foreach ($_POST['slnocell'] as $key => $value) 
    {
        $item = $_POST["slnocell"][$key];
        $desc = $_POST["desccell"][$key];
        $amt = $_POST["amtcell"][$key];


        $mysql_db->mysqldb_query("INSERT INTO testtbl VALUES  ('','$item', '$desc', '$amt')");

        $mysql_db->mysqldb_execute();
    }
}
?>

当我点击表单提交时,我收到两个错误

&#34; undefined index slnocell&#34;

&#34; invalid argument supplied foreach()&#34;

请帮忙,如何将数据保存到mysql .sql连接正常,因为它返回&#34; connected&#34;我用来检查连接的字符串。

我的SQL结构如下

CREATE TABLE `testbbl` (
`id` int(11) NOT NULL auto_increment,
`item` varchar(200) NOT NULL,
`desc` varchar(200) NOT NULL,
`amt` varchar(200) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf-8 AUTO_INCREMENT=1 ;

1 个答案:

答案 0 :(得分:1)

在插入数据之前,必须先创建一次数据库表。