实时编辑问题

时间:2014-06-17 09:48:27

标签: javascript php mysql sql

我在使用Live Edit Table时遇到问题。似乎不适合我。我有这个系统。实际上是一个小型租赁系统,可以保存租用房产的详细信息。这是实际的表格:

Actual Output

管理员必须将显示属性详细信息所需的信息填充到表中。然后数据库将发布所有详细信息,但租用物业数量列除外。 (首先必须为空,直到客户来租赁)这就是NoofRentedProperty列必须填写的时间。我尝试捕捉类似于facebook中的评论功能的Live Table Edit的想法。用户可以通过单击文本框来放置注释(但我的部分应该是span标签上的隐藏文本框),然后输入他/她的帖子。

我尝试插入一张伪造的记录作为例子,所有内容都已成功保存在数据库中并显示在桌面上(就像计划一样)但是当我尝试使用Live Edit为值设置值时。 ofRentedProperty,没有任何反应。我的意思是,它确实像FB上的commmentbox那样,但是一旦我按下回车,它实际上并没有保存。我发现非常令人不安,因为Amount Tendered专栏依赖于它。此列应将No.ofRentedProperty的值乘以租金成本(旁边的另一列)并显示到其单元格。但是,由于Live Edit不起作用,即使是Amount Tendered也没有显示任何内容。

您在图像上看到有一行正确显示了所有内容。那是我试图在数据库上手动插入下一条记录的时候。那是乘法运作的时候。但是手动使用insert语句不是一个选项吗?无论如何,系统的重点是什么?

我怀疑由于No.OfRented属性列(具有实时编辑功能)无法保存插入其中的数据,因此未显示“金额投标”和“总销售额”计数的原因。

以下是涉及的代码:

这个JavaScript包含文本字段的live_edit,它与我上面显示的输出图像在同一个php文件中。

$(document).ready(function () {
    $(".edit_tr").click(function () {
        var ID = $(this).attr('id');
        $("#first_" + ID).show();
        $("#last_" + ID).hide();
        $("#last_input_" + ID).show();
    }).change(function () {
        var ID = $(this).attr('id');
        var first = $("#first_input_" + ID).val();
        var last = $("#last_input_" + ID).val();
        var dataString = 'id=' + ID + '&price=' + first + '&qty_sold=' + last;
        $("#first_" + ID).html('<img src="load.gif" />');

        if (first.length && last.length > 0) {
            $.ajax({
                type: "POST",
                url: "table_edit.php",
                data: dataString,
                cache: false,
                success: function (html) {

                    $("#first_" + ID).html(first);
                    $("#last_" + ID).html(last);
                }
            });
        }
        else {
            alert('Enter something.');
        }
    });

    $(".editbox").mouseup(function () {
        return false
    });

    $(document).mouseup(function () {
        $(".editbox").hide();
        $(".text").show();
    });
}); 

现在我有2个php文件,其中包含连接到db的sql语句。首先是save.php,其中为所有文本字段放置了insert语句。

save.php

$proname=$_POST['proname'];
$tenant=$_POST['tenant'];
$location=$_POST['location'];
$price=$_POST['price'];
$qty=$_POST['qty'];
$qtysold=$_POST['qtysold'];
$date=$_POST['startDate'];


mysql_query("INSERT INTO inventory (item,details,location,qtyleft,qtysold,price,startDate) 
VALUES ('$proname','$tenant','$location','$qty','$qtysold','$price','$date')");

第二个是table_edit.php,它包含insert / update语句(这是在使用了No.ofRented属性的Live_Edit时触发的。)

if ($_POST['id']) {
    $id       = mysql_escape_String($_POST['id']);
    $qty_sold = mysql_escape_String($_POST['qty_sold']);
    $price    = mysql_escape_String($_POST['price']);
    $qty      = $_POST['qty'];
    $da       = $_POST['startDate'];;
    $sql = mysql_query("select * from inventory where id='$id'");
    while ($row = mysql_fetch_array($sql)) {
        $qtyleft = $row['qtyleft'];
        $price   = $row['price'];
    }
    $ssss      = $qtyleft - $qty_sold;
    $sale      = $qty_sold * $price;
    $sales_sql = mysql_query("select * from sales where date='$da' and inventory_id='$id'");
    $count     = mysql_num_rows($sales_sql);

    if ($count == 0) {
        mysql_query("INSERT INTO sales (inventory_id, qty, date, sales) VALUES ('$id','$qty_sold','$da','$sale')");
    }
    if ($count != 0) {
        mysql_query("UPDATE sales set qty='$qty_sold',sales='$sale' where date='$da' and inventory_id='$id'");
    }

    $sql = "update inventory set qtyleft='$ssss',price='$price',sales=sales+'$sale',qty_sold='$qty_sold' where id='$id'";
    mysql_query($sql);
}

你们有任何想法如何使这个实时编辑工作?毕竟,只涉及一列,即NoOfRentedProperty。建议?

此外,正如您所看到的,此系统的主题与MS Excel非常相似。每行必须有一个小计。例如,userA提供当天的首期付款,明天另一次付款,小额必须在每天的付款中显示。整个月的另一个总计数。与userB,C等相同。

0 个答案:

没有答案