我有多个数据库列,但现在只有两个工作(类别和产品)。
截至目前,我可以更新类别列,但我不确定如何实现我的php,因此它会占多个列。
请注意。我一次只能编辑一个数据库字段,这是我的意图。
以下是我的HTML / php的简化版本:
echo '<td><span class="xedit" id="'.$propRow['id'].'">'.$propRow['category'].'</span></td>';
echo '<td><span class="xedit xedit-product" id="'.$propRow['id'].'">'.$propRow['product'].'</span></td>';
echo "</tr>";
$rows []= array(
'id' => $propRow['id']
);
这是我的JS:
var rowData = <?php echo json_encode($rows); ?>;
for (i = 0; i < rowData.length; i++){
var rd = rowData[i].id;
jQuery(document).ready(function() {
$('.xedit').editable({
tpl: '<input type="text" name="category" id="' + rd + '" class="test form-control input-sm" style="padding-right: 24px;">'
});
$(document).on('click','.editable-submit',function(){
var num = $(this).closest('td').children('span').attr('id');
$.fn.editable.defaults.mode = 'inline';
$.fn.editable.defaults.send = "always";
var values = $(".test").val();
var myObj = { id: num, category: values };
$.ajax({
url: 'post.php',
type: 'post',
data: myObj,
success: {}
});
});
});
}
我的post.php文件在这里(我认为这就是问题所在。请不要评论mysql_ *函数的用法):
<?php
include '../config/database.php';
$category = $_POST['category'];
$product = $_POST['category'];
$id = $_POST['id'];
$query = "UPDATE " . $usoc_table . " SET category='" . $category . "', product='" . $product . "' WHERE id='" . $id . "';";
mysql_query($query);
?>
我需要在post.php中设置什么类型的条件才能使其正常工作?我已经玩弄了isset而且空了但没有多少运气。
任何建议表示赞赏。谢谢。
答案 0 :(得分:0)
好吧,我能够提出一个解决方案,虽然不是最漂亮的。
首先,给每个列项一个单独的类,就像这样(在我使用.xedit之前)。
echo '<td><span class="xedit-category" id="'.$propRow['id'].'">'.$propRow['category'].'</span></td>';
echo '<td><span class="xedit-product" id="'.$propRow['id'].'">'.$propRow['product'].'</span></td>';
接下来,每个班级分别使用.edtiable({})
,每个人使用tpl
。如您所见,每个人都有不同的name=
$('.xedit-category').editable({
tpl: '<input type="text" name="category" id="' + rd + '" class="cat form-control input-sm" style="padding-right: 24px;">'
});
$('.xedit-product').editable({
tpl: '<input type="text" name="product" id="' + rd + '" class="prod form-control input-sm" style="padding-right: 24px;">'
});
然后,获取每个类的值:
var valuesCat = $(".cat").val();
var valuesProd = $(".prod").val();
设置一个obj myObj
,每次都会使用相同的ID但不同的第二个键(在这种情况下,myObj.category
和myObj.product
var myObj = {};
myObj.id = num;
if ($("input").hasClass("prod")){
myObj.product = valuesProd;
}
if ($("input").hasClass("cat")){
myObj.category = valuesCat;
}
将其扔进data
:
$.ajax({
url: 'post.php',
type: 'post',
data: myObj,
success:...
最后在post.php中,有两个单独的更新查询:
if (isset($_POST['category'])) {
$category = $_POST['category'];
$id = $_POST['id'];
$query = "UPDATE " . $usoc_table . " SET category='" . $category . "' WHERE id='" . $id . "';";
mysql_query($query);
}
if (isset($_POST['product'])) {
$product = $_POST['product'];
$id = $_POST['id'];
$query = "UPDATE " . $usoc_table . " SET product='" . $product . "' WHERE id='" . $id . "';";
mysql_query($query);
}
不是最优雅,也不是重复,但现在已经完成了工作。
非常感谢有关如何重构此内容的任何输入。