【发布时间】:2014-09-19 20:58:15
【问题描述】:
我有一个 HTML 表格,在这个例子中,有 2 行(可能更多)。中间列是可编辑的,HTML 表中的每一行都是数据库中的不同列。当我编辑第 1 行并刷新页面时,第 2 行现在与第 1 行具有相同的值。我不想要这个。每一行的用户 id (pk) 都是相同的。关于creating a new record 的文档说这将适用于更新现有的,但并没有真正帮助我。我正在寻求尽可能多的帮助。
这是我的桌子的图像:
如何让每一行保持其值而不更新所有其他行?
例如,如果我更新第 1 行中的列,我只想更新第 1 行的列。
请帮忙!
这是我的代码:
HTML 代码:
<td><a class="myeditable" data-name="fb_url" data-type="text" data-pk="<?php echo ($userid);?>" title="Edit"><?php echo ($result['fb_url']);?></a></td>
<td><a class="myeditable" data-name="tw_url" data-type="text" data-pk="<?php echo ($userid);?>" title="Edit"><?php echo ($result['tw_url']);?></a></td>
Post.php 代码
require("config.php");
$pk = $_POST['pk'];
$name = $_POST['name'];
$value = $_POST['value'];
if(!empty($value)) {
try // save user selection to the database
{
$stmt = $db->prepare("UPDATE social_preferences SET fb_url = :fburl, tw_url = :twurl WHERE user_id = :userID AND ");
$stmt->bindParam(":userID", $pk, PDO::PARAM_INT);
$stmt->bindParam(':twurl', $value);
$stmt->bindParam(':fburl', $value);
$stmt->execute();
} catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
}else {
echo 'No value...';
}
JS代码:
$(document).ready(function() {
//toggle `popup` / `inline` mode
$.fn.editable.defaults.mode = 'inline';
$('.myeditable').editable({
url: 'post.php',
ajaxOptions: {
type: 'post',
},
success: function(data, config) {
if(data && data.id) {
//set pk
$(this).editable('option', 'pk', data.id);
}
}
});
});
当我在 Chrome 开发工具中检查网络选项卡时,我看到: 方法:POST 状态:302 暂时移动
【问题讨论】:
标签: php html mysql pdo x-editable