【发布时间】:2012-12-03 08:18:46
【问题描述】:
我正在尝试通过 json 将图像坐标传递给应该更新数据库的 php 文件。 我在 jquery 中有这个:
var coords=[];
var coord = $(this).position();
var item = { coordTop: coord.top, coordLeft: coord.left };
coords.push(item);
var order = { coords: coords };
$.ajax({
type: "POST",
data : +$.toJSON(order),
url: "updatecoords.php",
success: function(response){
$("#respond").html('<div class="success">X and Y Coordinates
Saved</div>').hide().fadeIn(1000);
setTimeout(function(){
$('#respond').fadeOut(1000);
}, 2000);
}
});
这是 updatecoords.php 的样子:
<?php
$db = Loader::db();
$data = json_decode($_POST['data']);
foreach($data->coords as $item) {
$coord_X = preg_replace('/[^\d\s]/', '', $item->coordTop);
$coord_Y = preg_replace('/[^\d\s]/', '', $item->coordLeft);
$x_coord = mysql_real_escape_string($coord_X);
$y_coord = mysql_real_escape_string($coord_Y);
$db->Execute("UPDATE coords SET x_pos = '$x_coord', y_pos = '$y_coord'");
}
?>
从 javascript 中显示成功消息,但是数据库中没有任何更新? 有什么想法吗?
【问题讨论】:
-
你有记录吗?现在您的查询看起来应该更新表中的所有记录。另外,
Loader来自哪里? -
如果我手动设置行,那么它们的调用方式如下:
$db= Loader::db(); $posimg = $img->getFileID(); $get_coords = $db->Execute("SELECT * FROM coords WHERE id = '$posimg'"); while ($row = $get_coords->FetchRow()) { $x = $row['x_pos']; $y = $row['y_pos']; }但我无法使用通过 JSON 发送的坐标来更新行。