可以'编辑后不会将数据保存在数据库中,但网格显示更改
can't save data in database after editing, but grid shows changes
当我编辑网格中的行时,更改只显示在该网格中。但当我重新加载网格时,所有更新都会消失,因为数据库中的数据尚未更新
谁能提示我哪里错了。这是我的测试.html
<script type="text/javascript" src="js/jquery.js"></script>
<script src="js/i18n/grid.locale-ru.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqgrid.min.js" type="text/javascript"></script>
<script src="js/grid.common.js" type="text/javascript"></script>
<script src="js/grid.formedit.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('#table').jqGrid({
url:'test.php',
datatype: 'json',
mtype: 'POST',
height: 500,
colNames:['Код страны','Код региона', 'Город','Долгота','Широта','nbip'],
colModel :[
{name:'country_code', index:'country_code', width:80, editable:true, edittype:'text'},
{name:'region_code', index:'region_code', width:180, editable:true, edittype:'text'},
{name:'city', index:'city', width:190, editable:true, edittype:'text'},
{name:'latitude', index:'latitude', width:160, editable:true, edittype:'text'},
{name:'longitude', index:'longitude', width:160, editable:true, edittype:'text'},
{name:'nbip', index:'nbip', width:130, editable:true, edittype:'text'}],
pager: $('#tablePager'),
pgtext : "Page {0} of {1}",
rowNum:100,
rowList:[10,20,30,100],
sortname: 'city',
sortorder: 'asc',
caption: 'Загрузка JSON данных',
rownumbers: true,
rownumWidth: 40
});
jQuery("#table").jqGrid('navGrid','#tablePager',
{edit:true,add:true,del:true,search:true}, //options
{url:'edit.php', height:280,reloadAfterSubmit:false, closeAfterEdit: true}, // edit options
{height:280,reloadAfterSubmit:false}, // add options
{reloadAfterSubmit:false}, // del options
{} // search options
);
}
});
</script>
</head>
<body>
<table id="table"></table>
<div id="tablePager"></div>
</form>
</body>
</html>
test.php
<?php
$db = mysql_connect($db_host, $db_login, $db_passwd);
mysql_select_db($db_name);
$page = $_POST['page'];
$limit = $_POST['rows'];
$sidx = $_POST['sidx'];
$sord = $_POST['sord'];
if(!$sidx) $sidx =1;
$result = mysql_query("SELECT COUNT(*) AS count FROM cities");
$row = mysql_fetch_array($result,MYSQL_ASSOC);
$count = $row['count'];
if( $count > 0 && $limit > 0) {
$total_pages = ceil($count/$limit);
} else {
$total_pages = 0;
}
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit;
if($start <0) $start = 0;
$query = "SELECT id, country_code, region_code, city, latitude, longitude, nbip FROM cities ORDER BY ".$sidx." ".$sord." LIMIT ".$start.", ".$limit;
$result = mysql_query($query);
$data->page = $page;
$data->total = $total_pages;
$data->records = $count;
$i = 0;
while($row = mysql_fetch_assoc($result)) {
$data->rows[$i]['id'] = $row[id];
$data->rows[$i]['cell'] = array($row[country_code],$row[region_code],$row[city],$row[latitude],$row[longitude],$row[nbip]);
$i++;
}
header("Content-type: text/script;charset=utf-8");
echo json_encode($data);
?>
edit.php
$db = mysql_connect($db_host, $db_login, $db_passwd) or die("Connection Error: " . mysql_error());
mysql_select_db($db_name) or die("Error conecting to db.");
//mysql_query("SET NAMES 'utf8'");
// And so on for the other form values
$id = $_POST['id'];
$country_code = mysql_real_escape_string($_POST['country_code']);
$region_code = mysql_real_escape_string($_POST['region_code']);
$city = $_POST['city'];
$latitude = mysql_real_escape_string($_POST['latitude']);
$longitude = mysql_real_escape_string($_POST['longitude']);
$nbip = mysql_real_escape_string($_POST['nbip']);
if($_POST['oper']=='add'){
// mysql insert
}else if($_POST['oper']=='edit'){
// mysql update
$query = "UPDATE cities SET city = '".$city."' WHERE id = ".$id;
$result = mysqli_query($db,$query) or die(mysql_error());
break;
}else if($_POST['oper']=='del'){
// mysql delete
}
?>
谢谢。
您正在使用mysqli
进行数据更新,并在代码中使用mysql_real_escape_string, mysql_connect, mysql_select_db
。
更新您的代码以仅使用mysqli
,而不是同时使用mysql
和mysqli
相关文章:
- 解析云代码作业:删除在数据库中已经存在一个小时的行
- ajaxSubmit:数据库中存在重复条目
- onblur文本框生成电子邮件已存在于数据库中的警报
- HTML画布保存在mysql数据库上
- 使用jquery验证插件检查数据库中是否存在电子邮件
- 将图像从 base64 转换为图像并保存在 Django 的数据库中
- 如何使用phonegap检查电话号码是否存在于联系人数据库中
- 检查数据库中是否存在用户的电子邮件
- 使用电话间隙检查数据库是否存在
- 我想通过JSP将我的表数据保存在MySQL数据库中
- 检查 mongo 数据库中是否存在后期输入
- ASP.NET 检查数据库中是否存在电子邮件的最佳方法
- 填写表单文本框,其中包含数据库表中的数据(如果用户存在)
- 猫鼬不会从预先存在的数据库node.js中检索数据
- 检查 JavaScript 中是否存在数据库
- 索引数据库 - 检查表存在并包含数据
- 检查数据库中是否存在电子邮件文本框值
- 使用 jQuery 检查数据库行是否存在
- 如何在 php 中将数据保存在 mysql 数据库中后在按钮单击中切换选项卡
- 在不使用数据库的情况下将突出显示的文本保存在 Chrome 扩展程序中