我正在处理要将dashboard a href data-id
传递给redeem index
的Web应用程序,但是问题是redeem index
在Windows定位后没有显示值vendors_id
href兑换视图?
仪表板视图
<a class="vendor_click_redeem_page" data-id="123">Test</a>
AJAX
$( document ).ready(function() {
$('.vendor_click_redeem_page').click(function(){
var vendors_id = $(this).attr("data-id");
$.ajax({
url: "redeem/index",
type: "POST",
dataType: "text",
data: {vendors_id: vendors_id},
success: function(text) {
window.setTimeout(function() {
window.location.href = "redeem/index"
}, 1500)
}
//return false;
});
});
兑换控制器
class Redeem extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('url');
$this->load->model("Redeem_model");
}
public function index()
{
if($this->input->post('vendors_id') && $this->session->userdata('user_id') !="") {
$data['vendor_id']= $this->input->post('vendors_id');
$page_data['page_name'] = "redeem/redeem";
$page_data['asset_page'] = "redeem";
$this->load->view('front/redeem/index', $data);
} else {
redirect('/');
}
}
}
兑换视图
<?php echo $vendors_id;?>
答案 0 :(得分:0)
在您的Ajax成功中,您正在重定向。这不是Ajax方式,您通常只想操作一些DOM,而其他所有内容保持不变。
在codeigniter中,您可以return views as data,它通过控制器获取您的ID。然后,您可以输出视图数据以将其发送给您的Ajax成功。 在那里,您可以获取该文本并更新要记住的dom元素
将它们放在一起:
视图:
<a class="vendor_click_redeem_page" data-id="123">Test</a>
<div class"vendor_html"></div>
控制器:
public function index()
{
if($this->input->post('vendors_id') && $this->session->userdata('user_id') !="") {
$data['vendor_id']= $this->input->post('vendors_id');
$page_data['page_name'] = "redeem/redeem";
$page_data['asset_page'] = "redeem";
echo $this->load->view('front/redeem/index', $data, true);
} else {
redirect('/');
}
}
Ajax:
$.ajax({
url: "redeem/index",
type: "POST",
dataType: "text",
data: {vendors_id: vendors_id},
success: function(text) {
$('.vendor_html').html(text);
}
注意:您的示例视图代码有错字:应该为<?php echo $vendor_id;?>
;
文档: jQuery Ajax