将ajax的值传给控制器,javascript – 如何通过ajax将隐藏字段值传递给codeigniter控制器...

我有一个包含按钮(链接)的视图文件:

Save

在这个视图的其他地方,我还在一个包含我的userid和vacancyid的表单中声明了一些隐藏字段.

echo form_input(dataHiddenArray('userid', $this->auth_user_id));

echo form_input(dataHiddenArray('vacancyid', $vacancydetails[0]->vacancy_id));

这些隐藏字段转换为:

现在我希望能够将这些值发送到我的控制器(通过AJAX),以便我可以将它们插入到我的数据库中.

我的JS文件如下所示:

$(function() {

var postData = {

"userid" : $("input.userid").val(),

"vacancyid" : $("input.vacancyid").val()

};

btnSave = $('#savebutton'),

ajaxOptions = {

cache: false,

type: 'POST',

url: "<?php echo base_url();?>dashboard/vacancy/saveVacancy",

contentType: 'application/json',

dataType: 'text'

};

btnSave.click(function (ev) {

var options = $.extend({}, ajaxOptions, {

//data : $(this).closest('form').serialize()

data: postData

});

ev.preventDefault();

// ajax done & fail

$.ajax(options).done(function(data) {

alert(data); // plausible [Object object]

//alert(data[0]); // plausible data

console.log(data); // debug as an object

}).fail(function (xhr, status, error) {

console.warn(xhr);

console.warn(status);

console.warn(error);

});

});

我的控制器看起来像这样(它没有做太多,因为它不返回任何东西):

public function saveVacancy() {

//$this->load->model('user/usersavedvacancies_model');

/*$data = array(

'userid' => $this->input->post('userid'),

'vacancyid'=>$this->input->post('vacancyid')

);*/

echo $this->input->post('userid');

}

解决方法:

对javascript的微小更改

$(function () {

var postData = {

"userid": $("input.userid").val(),

"vacancyid": $("input.vacancyid").val()

};

btnSave = $('#savebutton'),

ajaxOptions = {

type: 'POST',

url: "<?php echo base_url('dashboard/vacancy/saveVacancy);?>",

dataType: 'json'

};

btnSave.click(function (ev) {

var options = $.extend({}, ajaxOptions, {

//data : $(this).closest('form').serialize()

data: postData

});

ev.preventDefault();

// ajax done & fail

$.ajax(options).done(function (data) {

console.log(data); // debug as an object

if (data.result === 'success') {

alert("Yeah, it saved userid " + data.userid + " to vacancy id " + data.vacancyid);

}

}).fail(function (xhr, status, error) {

console.warn(xhr);

console.warn(status);

console.warn(error);

});

});

});

在控制器中

public function saveVacancy()

{

//assigning a more useable object name to the model during load

$this->load->model('user/usersavedvacancies_model', 'save_vacancy');

$data = array(

'userid' => $this->input->post('userid'),

'vacancyid' => $this->input->post('vacancyid')

);

//send data to model and model returns true or false for success or failure

$saved = $this->save_vacancy->doSaveId($data); //yes, I made up the method, change it

$result = $saved ? "success" : "failed";

echo json_encode(array('result' => $result, 'userid' => $data['userid'], 'vacancyid' => $data['vacancyid']));

}

标签:jquery,php,javascript,ajax,codeigniter

来源: https://codeday.me/bug/20190627/1310071.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来为您详细介绍一下 PHP 学生信息管理系统的实现方式和技术架构。 1. 实现方式 (1)控制器控制器是 MVC 架构中的一部分,负责处理用户请求并返回响应。在 PHP 中,通常使用类来实现控制器,一个类对应一个控制器,类中的方法对应不同的请求处理逻辑。 (2)中间件:中间件是一种处理请求的方式,它可以在请求到达控制器之前或之后对请求进行处理。在 PHP 中,可以使用中间件来实现认证、日志记录、请求过滤等功能。 (3)视图:视图是用户界面的一部分,负责将数据呈现给用户。在 PHP 中,视图通常使用模板引擎来生成 HTML 页面。 (4)路由参数传递:路由参数传递是指通过 URL 传递参数,以便控制器可以根据参数的不同进行不同的处理。在 PHP 中,可以使用路由器来实现路由参数传递。 (5)异步请求:异步请求是指客户端发起的请求,在不刷新页面的情况下获取响应结果。在 PHP 中,可以使用 Ajax 技术来实现异步请求。 2. 技术架构 PHP 学生信息管理系统通常使用的技术架构包括: (1)前端框架:前端框架可以用来实现用户界面的交互效果,比如 Bootstrap、jQuery、Vue.js 等。 (2)后端框架:后端框架可以用来实现控制器、中间件、路由器等功能,比如 Laravel、CodeIgniter、Yii 等。 (3)数据库:数据库用来存储学生信息等数据,比如 MySQL、Oracle、MongoDB 等。 (4)Web 服务器:Web 服务器用来处理客户端请求并返回响应,比如 Apache、Nginx 等。 总体来说,PHP 学生信息管理系统的技术架构比较灵活,可以根据实际需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值