HTML-小白 2023-03-27 14:32 采纳率: 69.2%
浏览 43
已结题

ThinkPHP 数据库的操作 控制器怎么写

怎么修改指定用户的余额

img

img


前端代码:

  1. <div class="layui-card">
  2. <div class="layui-card-header">
  3. 下级用户
  4. </div>
  5. <form class="layui-form" id="user_money">
  6. <div class="layui-card-body layui-text">
  7. <table class="layui-table">
  8. <thead>
  9. <tr>
  10. <th>用户id</th>
  11. <th>用户名</th>
  12. <th>余额</th>
  13. <th>注册时间</th>
  14. <th>多域名权限</th>
  15. <th>操作</th>
  16. </thead>
  17. <tbody>
  18. {volist name="userlist" id="v"}
  19. <tr>
  20. <td>{$v.id}</td>
  21. <td>{$v.email}</td>
  22. <td>{$v.money}</td>
  23. <td>{$v.create_time|date="Y-m-d h:s"}</td>
  24. <td class="td-manage">
  25. <span href="javascript:;" title="到期时间:{$v.many_lstime|date="Y-m-d"}">
  26. {$v.many==0 ? '未开通':'已开通'}
  27. </span>
  28. </td>
  29. <td class="td-manage">
  30. <input type="text" name="money" lay-verify="required" placeholder="{$v.money}" autocomplete="off" class="layui-input" style="display: inline;width: 20%;">
  31. <button class="ml_btn" lay-filter="user_money">修改</button>
  32. </td>
  33. </tr>
  34. {/volist}
  35. </tbody>
  36. </table>
  37. <div class="page">
  38. <a href="{:url('daili/index/user_list')}" class="layui-laypage-next" data-page="2">更多»</a>
  39. </div>
  40. </div>
  41. </form>
  42. </div>

这是控制器,一直没效果。不知道哪里出了问题

  1. //修改会员余额
  2. public function user_money()
  3. {
  4. $user_id = input('post.user_id'); //获取待修改的用户ID
  5. $money = input('post.money'); //获取要修改的金额
  6. $result = openus::where('id', $user_id)->setField('money', $money);
  7. if ($result !== false) {
  8. return json(['code' => 1, 'msg' => '修改成功']);
  9. } else {
  10. return json(['code' => -1, 'msg' => '修改失败']);
  11. }
  12. }

展开全部

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2023-03-27 14:50
    关注

    修改按钮事件怎么处理的,没见相关方法,要提交数据请求控制器发送数据来修改

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    HTML-小白 2023-03-27 14:53

    1. //监听提交-修改用户余额
    2. form.on('submit(user_money)', function(data){
    3. //发异步,把数据提交给php
    4. var form = $("#user_money").serialize();
    5. $.ajax({
    6. url:'{:url("daili/index/user_money")}',
    7. type:'post',
    8. data:form,
    9. dataType:'json',
    10. success:function(data){
    11. if(data.code == 1){
    12. layer.alert(data.msg, {icon: 6},function () {
    13. //刷新当前页面
    14. location.reload();
    15. });
    16. return false;
    17. }else{
    18. layer.msg(data.msg,{icon:5,time:2000});
    19. }
    20. }
    21. });
    22. return false;
    23. });

    回复
    CSDN专家-showbo 回复 HTML-小白 2023-03-27 15:08

    var form = $("#user_money").serialize();这句是序列化表单数据,表单中没有user_id和money输入项,就算有是多个的用户的,会一起提交了,改下面这样监听修改事件

    1. //监听修改按钮
    2. $(document).on('click', 'button[lay-filter="user_money"]', function () {
    3. var el = $(this);
    4. var tr = el.closest('tr');
    5. var user_id = tr.find('td:first').text();//得到id
    6. var money = el.prev().val();//得到输入的余额
    7. $.ajax({
    8. url: '{:url("daili/index/user_money")}',
    9. type: 'post',
    10. data: { user_id, money },//不太清楚ThinkPHP $user_id = input('post.user_id')这里是不是获取post请求中的user_id值还是直接键名称就是post.user_id,如果键名称是post.user_id用下面的data节点
    11. //data: {'post.user_id': user_id, 'post.money':money },
    12. dataType: 'json',
    13. success: function (data) {
    14. if (data.code == 1) {
    15. layer.alert(data.msg, { icon: 6 }, function () {
    16. //刷新当前页面
    17. location.reload();
    18. });
    19. return false;
    20. } else {
    21. layer.msg(data.msg, { icon: 5, time: 2000 });
    22. }
    23. }
    24. });
    25. return false;
    26. })

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月27日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部