我编写了一些代码,用于在双击后编辑值时使用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。所以,我没有得到我遇到问题的地方。
答案 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