我在使用Live Edit Table时遇到问题。似乎不适合我。我有这个系统。实际上是一个小型租赁系统,可以保存租用房产的详细信息。这是实际的表格:
管理员必须将显示属性详细信息所需的信息填充到表中。然后数据库将发布所有详细信息,但租用物业数量列除外。 (首先必须为空,直到客户来租赁)这就是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等相同。