【问题标题】:Ajax is not working in CodeigniterAjax 在 Codeigniter 中不起作用
【发布时间】:2016-11-10 08:04:04
【问题描述】:

Ajax 不工作:我想使用 Code Igniter 框架更新一条记录。当我将 po_id 传递给下面的 url 时。我的 ajax 不工作。但没有传递 id 我下面的 ajax 正在工作。

<a class="btn btn-success" href="<?php echo base_url('inventory_c/view_purchase_update/'.$result->po_id);?>">Update</a>

控制器:

public function view_purchase_update() {
      $data['pitems'] = $this->inventory_m->purchase_items_update($po_id);
      $data['sname']  = $this->inventory_m->getsuppname($supplier_id);
      $data['sid'] = $this->inventory_m->getsuppid($po_id);      
      $this->load->view('superadmin/editable_purchase_update',$data);     
}

Ajax 代码:

$.ajax({
      type: "POST",
      url: "add_temp_purchase",
      cache: false,
      data: 'itemnum='+itemnum+'&itemname='+itemname+'&costprice='+costprice+'&quantity='+quantity+'&customer_id='+customer_id+'&sales='+sales,
      dataType: "html",
      success: function(returnhtml) {

      }
});

【问题讨论】:

  • 你必须在这里定义完整的 url url: "add_temp_purchase", 以及控制器名称:也许:url: "add_temp_purchase/view_purchase_update",
  • 当您单击update 时,它会将您带到view_purchase_update 方法。那么你想用 AJAX 做什么呢??
  • 你的 add_temp_purchase 函数在哪里?
  • 公共函数 add_temp_purchase() { echo $customer_id = $_POST['customer_id']; $add_temp_purchase = array('item_id' => $item_id, 'item_name' => $item_name, 'cost_price' => $costprice, ); $this->db->insert('order_taken_list', $add_temp_purchase); if($this->db->affected_rows() == 1) { echo "插入临时数据"; } else{ echo "错误的移动"; } }
  • 没有将任何 id 传递给 url ajax 正在工作,但是当我传递 id 时它不起作用

标签: php jquery mysql ajax codeigniter


【解决方案1】:

使用 Ajax 发送数据时,请注意它是 JSON 格式的。

你可以做的如下:

$.post( "add_temp_purchase", { 
      itemnum: itemnum, 
      itemname: itemname,
      costprice: costprice,
      quantity: quantity,
      customer_id: customer_id,
      sales: sales
}).success(function( data ) {
     alert( "success" );
});

在您的控制器中,您将拥有以下内容

public function postData() {
     $postData = $this->input->post();
     $itemNum = $postData['itemnum'];
     #etc....
}

您能否确认可以在您的视图中打印出$result-&gt;po_id? 似乎您从未将其解析为视图,在您的控制器中您应该执行以下操作以确保您拥有此

public function view_purchase_update() {
  $data['pitems'] = $this->inventory_m->purchase_items_update($po_id);
  $data['sname']  = $this->inventory_m->getsuppname($supplier_id);
  $data['sid'] = $this->inventory_m->getsuppid($po_id);   
  $data['po_id'] = $po_id;
  $this->load->view('superadmin/editable_purchase_update',$data);     
}

那么在你看来你会这样使用它

<a class="btn btn-success" href="<?= base_url('inventory_c/view_purchase_update/'.$po_id);?>">Update</a>

【讨论】:

  • 是的,我已经使用 id 获取了我以前的数据。想在 codeigniter 的帮助下使用 db 编辑数据和删除。
  • db..在ajax的帮助下添加了没有id数据的
  • 检查您浏览器的开发工具,您应该会在网络选项卡下看到 ajax 调用,并且您会看到一些响应。
  • 如何查看开发工具
  • 收到内部服务器错误 500
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 2016-07-30
  • 2015-03-07
  • 2018-12-11
  • 2023-03-05
  • 2020-05-14
  • 1970-01-01
相关资源
最近更新 更多