填充动态表以进行编辑

时间:2015-02-05 00:30:09

标签: php mysql

我正在建立一个小发票申请表。现在我可以创建发票 用表格处理标题信息,存储在我的发票表中, 并在下面的同一页面上用Javascript创建的动态表格 将我的发票行项目信息存储在我的i​​nvoicelineitem表中。

现在我需要打开发票并编辑一些信息,标题部分是 没问题,但如何用发票详细信息填充我的动态表格 存储在数据库中的信息(lineitems)?这也需要在 动态表因为我不仅可以对单个行进行更改,而且还可以 可能会删除和/或添加新行?

这就是我用来为我的新订单项创建动态表的原因 我的html文件的一部分。如果有更好的"你推荐这样做的方式 我愿意接受建议。如果是的话,我会好的不使用JavaScript 可能的。

<script language="javascript">

 function addRow(tableID) { 

    var table = document.getElementById(tableID);

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);
    var element1 = document.createElement("input");
    element1.type = "checkbox";
    element1.name="chkbox[]";
    cell1.appendChild(element1);

    var cell2 = row.insertCell(1);
    cell2.innerHTML = "<input type='text' name='itemdesc[]' >";

    var cell3 = row.insertCell(2);
    cell3.innerHTML = "<input type='number'  name='unitprice[]' >";

    var cell4 = row.insertCell(3);
    cell4.innerHTML =  "<input type='number'  name='quantity[]' >";

    var cell4 = row.insertCell(4);
    cell4.innerHTML =  "<input type='number'  name='linetotal[]' >";
    }

function deleteRow(tableID) {
    try {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;

    for(var i=0; i<rowCount; i++) {
        var row = table.rows[i];
        var chkbox = row.cells[0].childNodes[0];
        if(null != chkbox && true == chkbox.checked) {
            table.deleteRow(i);
            rowCount--;
            i--;
        }
    }
    }catch(e) {
        alert(e);
    }
}

</script>

<INPUT type="button" value="Add Row" onClick="addRow('dataTable')" />

<INPUT type="button" value="Delete Row" onClick="deleteRow('dataTable')" />

<form action="" method="post" name="f">  

<TABLE width="425" border="1">
<thead>
<tr>
<th width="98"></th>
<th width="94">Desc</th>
<th width="121">Price</th>
<th width="84">Qty</th>
<th width="84">Tot</th>

</tr>
</thead>
<tbody id="dataTable">

</tbody>
</TABLE>

这是我用来处理index.php文件中的动态表的php代码。

/* Save the new invoice lines to the database */

/* Prepare the sql statement outside the for loop so that it only has to be
    * done once instead of every time through the loop */

$sql = 'INSERT INTO invoicelineitem SET
    invoiceid = :invoiceid,
    itemdesc = :itemdesc,
    unitprice = :unitprice,
    quantity = :quantity,
    linetotal = :linetotal';
$s = $pdo->prepare($sql);

for($i=0; $i < count($_POST['itemdesc']); $i++)
{
    try
    {
        /* Handle the values from the dynamic table as we loop, the sql
            * statment has already been prepare */
        $s->bindValue(':invoiceid', $last_id);
        $s->bindValue(':quantity', $_POST['quantity'][$i]);
        $s->bindValue(':unitprice', $_POST['unitprice'][$i]);
        $s->bindValue(':itemdesc', $_POST['itemdesc'][$i]);
        $s->bindValue(':linetotal', $_POST['linetotal'][$i]);
        $s->execute();
    }        

同样,我完全难以将订单项从数据库中拉出来 并将它们放在动态表格中进行编辑。

0 个答案:

没有答案