今天要做一个增删改查,以应对后期二期需求
今天做开发,今天也是搞PHP第二天了,应该可以上手开发了。
通过f12,很快能检索到渠道管理的id,
然后新增
注意一下,这里id别重复了。然后刷新页面,
这时候页面应该是没有的,那么我们清空一下浏览器缓存,试一下。ctrl + shift + delete
我靠,还是没有。然后细心一数我发现了,
发现这里有7个菜单,然后我们后台却写了9个,很明显,这里一定是有一个管理平台开启配置的地方了。那现在问题是,这块儿配置在哪里,卡住了,该怎么开发下去?算了,我们先往下走吧,这么的。
我们直接手动的:
后面如果找到了权限的js再说吧,
然后肯定可以调试了。
现在如果我们点击,肯定报错啊,
报错无非就是找不到页面找不到方法之类的,不用理会,往下干。模仿一下,这么写。
可以大致知道一下这个点击事件是在干嘛,给这个按钮的id设为0,然后将contentid隐藏,并且写空字符串上去,意思做初始化咯。然后有注释可以看,//设置标志,阻止双击,查询执行完毕会设置标志为0//延迟执行显示等待gif,如果查询0.5秒内返回,则不显示等待gif
然后是发送ajax_href_0_4();方法,设置浏览器标题,所以我们还得去模仿一下ajax_href_0_9();当然了,在这里我猜,e.preventDefault();很有可能就是做初始化的。
至此,我们也看到了post发送ajax请求,那还等什么,直接去看请求的PHP了。
改写了一下这个PHP。
该php导入了两个php类,我依次粘贴一下。第一个是config.php,这个是加载smarty的
第二个是配置的common.php
引入的两个类就是加载smarty和做参数配置,然后做了从session拿到了登录用户账号,校验是否超时,接着,smary写了标签,然后smarty展示了一个html,我们要去写这个html,就是他了。
移除点击此处添加图片说明文字也模仿一个页面出来。
不多,也就88行代码,一个比较简单的表单,表单提供基本的增删改查功能,看一部分业务代码。
这个页面88行html页面,但是我们看到了一些id,所以,得找到他们的js,js在html前面,也就是这里,别忘记了。
老样子,模仿一个下js,创建management_channel_test.js,283行,大部分是做页面的一些简单的操作。发了很多表单的请求,可以解读一下。然后接下来,这个功能其实也就差不多了,我们首先刷新一下页面,来看看,真正的渠道管理,给我们的页面效果。
接下来改写一下这个js吧,读懂后改成自己的,来记录一下请求,这是初始化的init
再来看一下,如果点击修改或者删除,会触发的事件:
可以看到,如果点击删除,首先将增加和修改样式隐藏,然后用选取到、
ch_code_del = $(this).parent().parent().children().eq(0).text();
拿到渠道代码,然后就是删除了,".process_del"的类选择器使得management_channel_test.html页面出现
另外,id的点击事件也浮出水面,这个点击事件,
首先发送post请求,management_channel_get_table.php的id为del,带入参数,
chs_del:chs_del, ch_code_del:ch_code_del
到这里写一下这个delete的php方法吧,
一个删除操作,对象的删除操作具体入库为:
得到返回data,如果data为0,说明渠道已经被使用,无法更改,
如果返回data == 1,说明已经修改,会触发一系列事件,close_dialog();关闭对话框,还有就是draw_ch_body事件,他是做这个的:
就是一个展示列表,效果在下面
在进入删除js方法的最后一个事件,ajax_href_ch();
这个函数其实也就是做这个事情了,
这个php会跳转回去,做重新加载页面的操作:
好了,结束了,这一套增删改查流程。。。。
那下面说一下坑吧,在我们写management_channel_get_table_test.php时,发现初始胡失败,那么,可能是改了某个请求url的地址,所以回去重新写一份。
<?php
/**
* Kaka,17/6/23
*/
/* 设置时区 */
date_default_timezone_get ( 'Asia/Shanghai' );
require_once './../../configs/config.php';
require_once $path_common . '/common.php';
require_once './management_channel_get_data.php';
session_start ();
if (! isset ( $_SESSION [‘login_user_code‘’] )) {
echo '<script>';
echo 'location.href="../../code/frame/login.php"';
echo '</script>';
exit ();
}
$id = $_REQUEST ['id'];
$result = array ();
$EditRoles = new EditRolesData ( $uri );
$EditRoles->open_db ();
if (id == 'init') {
$EditRoles->init_data ();
$result = $EditRoles->get_result_list_data ();
}
if (id == 'add') {
$ch_code = $_POST ['ch_code'];
$chs_code = $_POST ['chs_code'];
$result = $EditRoles->add_data ( $ch_code, $chs_code, $_SESSION ['login_user_code'] );
}
if (id == 'upd') {
$ch_code = $_POST ['ch_code'];
$chs_code = $_POST ['chs_code'];
$ch_code_b = $_POST ['ch_code_b'];
$chs_code_b = $_POST ['chs_code_b'];
$result = $EditRoles->upd_data ( $ch_code, $chs_code, $ch_code_b, $chs_code_b, $_SESSION ['login_user_code'] );
}
if (id == 'del') {
$ch_code_del = $_POST ['ch_code_del'];
$chs_code_del = $_POST ['chs_code_del'];
$result = $EditRoles->del_data ( $chs_del, $ch_code_del, $_SESSION ['login_user_code'] );
}
echo json_encode ( $result );
?>
可以看到
数据无法初始化,别急,可能是init方法错了,看了一下init也没错,然后仔细比对,错误子常量引用:
然后上面那段代码已经是正确的了,改过来了已经,可以直接用。
好了,增删改查开发完毕,PHP比较容易上手,开发起来面向对象思想,做前端web应用确实挺快的。
向着架构师的道路继续前进。