首页 > 解决方案 > ajax 函数没有正确执行

问题描述

这是我的 .ctp 文件,单击提交按钮时它应该将数据保存在数据库中。但是当函数在控制器上运行时它不会返回任何值,所以它不会进入 ajax 的成功函数。而且我不知道它是否进入控制器函数并返回任何值。

$('#submit_btn').click(function(e){
            var value1=$('#nname').val(); 
            //alert(value1);
            $.ajax({  
            cache: false,
            dataType: "html",
            type: "POST",  
            evalScripts: true,
            url: '<?php echo Router::url(array('controller'=>'Partconfs','action'=>'addlot'));?>',
            data: ({name1:value1}),  
            success: function(result){ 
            console.log(result);
            alert(result);
            if(result==2)
            {
            $('*').css('cursor','auto');
            }
                    }
                });
            });

关联的.php文件,我只是将lot_no保存在数据库的lot表中并回显2。所以它应该返回ajax的成功函数。但是有一些问题,它没有返回ajax成功函数。

public function addlot()

        {

         $this->loadModel('lot');
         $this->layout = 'ajax';
         $this->autoRender = false;
         $lotno=$this->request->data['name1'];
         $loc = $this->Auth->user('location');
         $acc=array('lot_no'=>$lotno,'location'=>$loc);
         $this->lot->save($acc);
         $this->loadModel('lot');
        $this->lot->recursive=0;
         $this->set('lots',$this->lot->find('all',array('conditions'=>array('location'=>$loc))));
             echo 2;
              }

标签: javascriptphpjquerycakephp

解决方案


首先你需要改变

url: '<?php echo Router::url(array('controller'=>'Partconfs','action'=>'addlot'));?>',

url: "<?php echo Router::url(array('controller'=>'Partconfs','action'=>'addlot'));?>", 

为了调试您的 ajax,您可以检查浏览器的“网络”选项卡并从那里选择您的 ajax 调用并检查您遇到的错误。请找到附件图片供您参考

在此处输入图像描述


推荐阅读