我在php应用程序中使用X-Editable插件来更新表的字段并使用POST文件来更新数据库。
这是表格代码:
<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调用中并不是很坚强。有人可以让我知道如何调试它,并弄清楚为什么我的价值没有被推送到数据库中。
任何帮助将不胜感激。
要正确调试,您可以使用浏览器控制台!特别是“网络”选项卡在调试时很有帮助。
您已成功包含脚本,并使用了正确的标记,因此可以更改DOM。现在,调试的下一步是确保对您的post.php发出ajax请求(将数据推入)。
要发送内容,您需要设置ajaxOptions put,如下所示:
$('#name').editable({
type: 'text',
url: 'post.php',
ajaxOptions: {
type: 'put'
}
});
您可以通过检查控制台的“网络”选项卡来调试Ajax请求。编辑该字段之前,请打开网络控制台。然后对其进行编辑,并观察新请求出现在控制台中。通过单击控制台中的日志条目,您可以看到数据从浏览器发送到脚本。
在您的post.php文件中,您可以添加var_dump($ _ POST); 查看所有传入的参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句