无法在codeigniter

时间:2016-12-12 18:13:50

标签: php jquery ajax codeigniter

我编写了一些代码,用于在双击后编辑值时使用ajax和codeigniter更新数据库值。

查询: 当我点击 dc_no 列下的值时,我想更新表 sale_detail 下的列 dc_no 。现在,我只能改变变量的值一次。第二次当我尝试更新值时,没有任何反应。此处 dc_no 属于 float 类型。以下是我写的代码:

查看/ AJAX:

<td id="<?php echo $object['dc_no'];?>" ondblclick="divDblClick5(this)"><?php echo $object['dc_no'];?></td>
            <script type="text/javascript">
            var dc_no = "<?php echo $object['dc_no'];?>";
            document.getElementById('<?php echo $object['dc_no'];?>').val = dc_no;
            function divDblClick5(target)
            {
                var new_dc_no=prompt("Please enter New DC",dc_no);
                dc_no = new_dc_no;
                document.getElementById(target.id).val = dc_no;
                $.ajax({
                  type: "post",
                  url: "dcsaleedit",
                  cache: false,    
                  data: { dc: target.id, dc_no: dc_no},
                  success: function(response){

                    alert(response);
                    // window.location.reload();

                },
                error: function()
                {     
                  alert('Error while request..');
                }
                });

              }
            </script>

在这里,我使用了变量id。

控制器:

public function dcsaleedit()
    {
        $dc = $this->input->post('dc');
        var_dump($dc);
        $dc_no = $this->input->post('dc_no');
        $fdc = (float)$dc_no;
        $update_array = array('dc_no' => $fdc);
        $this->User_model->update_dcsale($dc, $update_array);
   }

我还检查过我是否收到了输入。我成功地获得了价值观。我已将 _dc_no _ 转换为字符串浮点数,因为dc_no属于 float 数据类型。

型号:

public function update_dcsale($dc, $update_array)
        {
            $this->db->where('dc_no',$dc);
            return $this->db->update('sale_details', $update_array);
        }

我还通过var_dump()检查了模型返回的值,显示为true。所以,我没有得到我遇到问题的地方。

2 个答案:

答案 0 :(得分:0)

你的ajax网址不正确。你需要向ajax展示一条正确的道路。

答案 1 :(得分:0)

从阿扎德汗的角度来看,网址不对。 你正在写一个webapp,对吗? 因此,您正在使用来自w3c或http 1.1文档的http协议,声明该url具有以下语法:

protocol://domainName:port/uri
http://yoursite.com/routeWhereYouUpload

不是必须指定:80表示http,所以更改

url: "dcsaleedit"

url: "localhost:9000/nameOfProject/controller.php/dcsaleedit"

显然localhost:9000是您使用xampp,wampp,vagrant或apache进行开发的路径,我不知道您的开发环境,您必须自己调整它,只需将路径访问您的控制器.php(不是c:/xampp/htdocs/project而是localhost:port/project/controller/route