我在我的php应用程序中使用X-Editable插件来更新我的表的字段并使用POST文件来更新数据库。X-editable不更新数据库中的值
这里是表单代码:
<table id="restaurant" class="table table-bordered table-striped">
<tbody>
<?php
echo '
<tr>
<td style="width:15%">Restaurant name</td>
<td style="width:50%"><a href="#" id="name" data-type="text" data-pk="'. escape($arrValues[$i]->r_id) .'" data-name="name" data-placeholder="Required" data-original-title="Enter Restaurant Name" class="editable editable-click" style="display: inline;">'. escape($arrValues[$i]->name) .'</a></td>
<td style="width:35%"><span class="text-muted">Enter restaurant name.</span></td>
</tr>';
?>
</tbody>
</table>
这里是X-编辑JS我使用在页面的底部:
<script>
jQuery(document).ready(function() {
//initializes all global values and plugin essentials
FormEditable.init();
//below function is only initialized on one field for debug purposes
$(function(){
$('#name').editable({
url: 'post.php'
});
});
});
</script>
这里是我的post.php中文件的内容:
<?php
require 'core/init.php';
$pk = $_POST['pk']; //primary key aka ID
$name = $_POST['name']; //name of the field
$value = $_POST['value']; //value of the field
if (!empty($value)){
$result = mysql_query('update Restaurants set '.mysql_escape_string($name).'="'.mysql_escape_string($value).'" where r_id = "'.mysql_escape_string($pk).'"');
print_r($_POST);
} else {
header('HTTP 400 Bad Request', true, 400);
echo "This field is required!";
}
?>
当我更新应用程序中的字段时,值在DOM中被更改,但值未更新在数据库中。 这是我第一次使用X-Editable插件,在JS AJAX调用中我不是很强大。有人可以让我知道我该如何调试,并找出为什么我的价值没有被推到数据库。
任何帮助将不胜感激。
谢谢你的回应。我像前面提到的那样添加了AJAX选项,并在浏览器中查看了控制台和网络选项卡。我从Post.php页面获得了200个响应,但该值在数据库中仍未更新。我在Post.php页面的$ _POST上回显var_dump,但是我得到一个空数组。看来我没有发送任何数据到Post.php页面。我认为JS在我点击提交按钮时没有发送数据。 – Anton
我已经在JsFiddle上重新创建了您的示例作为演示:http://jsfiddle.net/hq7yH/5/当它们发送到post.php时,您能看到控制台中的值吗?您也可以检查您的$ arrValues是否正确插入到HTML中。 –
添加了显示值的控制台屏幕截图:http://i.imgur.com/r5UcFHr.jpg –