admin 发表于 2024-5-25 20:14:03

微擎开发之ajax序列化提交表单信息给后端php处理返回结果

我们在前端html代码中定义表单form的id,然后将微擎提交按钮type=submit改为type=button,这是ajax提交的处理方法,代码如下:<form action="" method="post" class="form-horizontal form" enctype="multipart/form-data" id="levelform">
                <div class="panel panel-default">
                        <div class="panel-body">
                              <div class="form-group">
                                        <label class="col-xs-12 col-sm-2 col-md-1 control-label">分类层级</label>
                                        <div class="col-sm-9 col-xs-12">
                                                 <label class='radio-inline'>
                                                         <input type='radio' name='islevel' value='1' {if $level['islevel']==1 || empty($level['islevel'])}checked{/if} /> 一级
                                                 </label>
                                                 <label class='radio-inline'>
                                                         <input type='radio' name='islevel' value='2' {if $level['islevel']==2}checked{/if} /> 二级
                                                 </label>
                                        </div>
                                 </div>
                                 <div class="form-group">
                                        <label class="col-xs-12 col-sm-2 col-md-1 control-label">显示样式</label>
                                        <div class="col-sm-9 col-xs-12">
                                                <label class='radio-inline'>
                                                      <input type='radio' name='istype' value='0' {if $level['istype']==0}checked{/if} /> 圆形
                                                </label>
                                                <label class='radio-inline'>
                                                      <input type='radio' name='istype' value='1' {if $level['istype']==1}checked{/if} /> 方形
                                                </label>
                                        </div>
                              </div>
                              <div class="form-group">
                                        <label class="col-xs-12 col-sm-2 col-md-1 control-label">分类广告</label>
                                        <div class="col-sm-9 col-xs-12">
                                                {php echo tpl_form_field_image('thumb', $level['thumb'])}
                                        </div>
                              </div>
                              <div class="form-group">
                                        <label class="col-xs-12 col-sm-2 col-md-1 control-label">分类广告链接</label>
                                        <div class="col-sm-9 col-xs-12">
                                                <input name="linkurl" class="form-control" value="{$level['linkurl']}">
                                        </div>
                              </div>
                        </div>
                </div>
                <div class="form-group col-sm-12">
                        <input id="submit" type="button" name="submit" value="提交" class="btn btn-primary col-lg-1" />
                        <input type="hidden" name="token" value="{$_W['token']}" />
                </div>
      </form>我们在javascript中定义变量接收序列化表单数据,代码如下:
<script>
$(document).ready(function(){
      $('#submit').click(function(){
                var params = $('#levelform').serialize();
                $.ajax({
                        url: "{php echo $this->createWebUrl('category',array('op'=>'level'))}",
                        type: "POST",
                        data: params,
                        success: function(data){
                              var data = $.parseJSON(data);
                              if(data.message.errno != 0) {
                                        util.message(data.message.message);
                                        return false;
                              }else{
                                        util.message(data.message.message);
                                        return false;
                              }
                        }
                });
      });
});
</script>我们在后端php代码处理数据,代码如下:
if($_W['isajax']){
               
            $data = array(
                'uniacid'=>$_W['uniacid'],
                  'islevel'=>$_GPC['islevel'],
                  'istype'=>$_GPC['istype'],
                  'thumb'=>$_GPC['thumb'],
                  'linkurl'=>$_GPC['linkurl'],
      );
            if(empty($level)){
                $inst = pdo_insert('wc_teacher_category_level', $data);
                        if($inst){
                              message(error(0, '设置成功'), '', 'ajax');
                        }else{
                              message(error(-1, '设置失败,请重试!'), '', 'ajax');
                        }
      }else{
                $updt = pdo_update('wc_teacher_category_level', $data, array('uniacid'=>$_W['uniacid']));
                        if($updt){
                              message(error(0, '设置成功'), '', 'ajax');
                        }else{
                              message(error(-1, '设置失败,请重试!'), '', 'ajax');
                        }
      }
    }返回给前端的data对象如下:
data.message.errno表示错误代码,正如我们上面php定义的0和1,而data.message.message表示的是上面代码中的error()方法中的文字描述“设置成功”的内容。
跳转的链接内容使用的是data.redirect,而data.type是ajax。
页: [1]
查看完整版本: 微擎开发之ajax序列化提交表单信息给后端php处理返回结果