JQuery serialize后,在后台取不到值的问题

本文介绍了一个在使用JQuery AutoComplete插件时遇到的问题:后台无法获取serialize后的表单输入值。文中详细解释了问题的原因,并提供了解决方案。此外,还给出了在ThinkPHP框架下实现JQuery AutoComplete的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用JQuery的AutoComplete功能时,出现一个奇怪的问题,那就是后台取不到被serialize后的form中的input的值。为这个问题烦恼了n久,终于找到原因。原因很汗。。。那就是被serialize的form被嵌套在了另外一个form中。目前只是知道如何修改,至于原因,暂时不考虑,留待有空验证。顺便记录一下JQueryAutoComplete的用法(框架是Thinkphp3.2)。

前台:

<html>

<head>

</head>

<body>

<link href="__PUBLIC__/Home/jquery-ui/css/ui-lightness/jquery-ui-1.8.17.custom.css" rel="stylesheet" />
<script src="__PUBLIC__/Home/jquery-1.7.1.min.js"></script>
<script src="__PUBLIC__/Home/jquery-ui/js/jquery-ui-1.8.17.custom.min.js"></script>
<script src="__PUBLIC__/Home/jquery-ui/js/jquery-ui-widget-combobox.js"></script>
<script type="text/javascript">
  //getgoodstrend ajax end
var Auto = $.noConflict();   //使用了AmazeUI的前段框架,里面也引用了另外一个版本的JQuery,此处意思是让JQuery知道用了两个库,他会去找最合适的库,不会出现方法不存在的问题
//auto complete start
Auto(function() {
    Auto("#goodsidtoadd").autocomplete({
    source:function( request, response ) {
      Auto.ajax({
        url: "__URL__/searchgoodstoaddbyajax",
            dataType: "json",
            data:$('#addgoodsform').serialize(),
            success: function( result ) {
              response( Auto.map( result, function( item ) {
                    return item;
                }));
            }

      });
    }
    });
});
//auto complete end
</script>

<form name="addgoodsform" accept-charset="utf-8" id="addgoodsform" method="post">

 <div class="am-u-sm-2">药品名称:</div>
        <input type="text" name="goodsidtoadd" id="goodsidtoadd" placeholder="药品名称" class="am-form-field">                 
  </div>

</form>

</body>

</html>


后台:

 public function searchgoodstoaddbyajax()
    {
        
        $SICK = M("sickness");
        $queryStr = "name LIKE '%".I("get.goodsidtoadd")."%' OR id LIKE '%".I("get.goodsidtoadd")."%'";
        $sicklist = $SICK->where($queryStr)->select();  
        $index = 0;
        foreach ($sicklist as $sick) {
            $json[$index]['label']=$sick['name'];
            $json[$index]['value']=$sick['id'];
            $index++;
        }
        if(empty($json))
        {                         
            $json[0]['label']="无对应病症";
            $json[0]['value']="";
        }
        $this->ajaxReturn($json,'JSON');
        /*
        $CON = M("vipconsumption");
        $queryStr = "goodsname LIKE '%".I("get.searchinfo")."%' OR goodscode LIKE '%".I("get.searchinfo")."%'";
        $conlist = $CON->where($queryStr)->group("goodscode")->field("goodscode,goodsname")->limit(10)->select();  
        $index = 0;
        foreach ($conlist as $con) {
            $json[$index]['label']=$con['goodsname'];
            $json[$index]['value']=$con['goodscode'];
            $index++;
        }
        if(empty($json))
        {                         
            $json[0]['label']="无对应药品";
            $json[0]['value']="";
        }
        $this->ajaxReturn($json,'JSON');
        */
    }


效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值