查看:
<table>
<tr>
<td id="percentage">Percentage: <?php echo $percentage; ?> %</td>
</tr>
</table>
<div class="box-footer" style="float: right">
<a href="<?php echo base_url(); ?>student/Examinations" class="btn btn-primary" style="font-size: 20px;" id="submit">Submit</a>
</div>
<script>
$(document).ready(function () {
var percentage = $("#percentage").text();
console.log(percentage); //Percentage: 28.57 %
$("#submit").click(function () {
$.ajax({
type: 'POST',
url: base_url + "student/Examinations",
data: {percentage: percentage},
success: function () {
}
});
});
});
</script>
控制器:
class Examinations extends CI_Controller {
function __construct() {
parent::__construct();
}
public function index() {
$percentage = $_POST["percentage"];
var_dump($percentage); // var_dump null
}
}
我的问题:javascript变量(百分比)传递控制器,而var_dump为空为什么?请帮帮我.......................... ...........
答案 0 :(得分:0)
我自己不是代码点火器的用户,但使用其他框架,您最好使用请求对象。
我很快就仔细阅读了代码点火器文档,显然你应该这样做:
$percentage = $this->input->post('percentage');
答案 1 :(得分:0)
它表现得像那样,因为你在这里做了两件事。它看起来像是:
id="submit"
$(#submit).click()
:
percentage
的ajax调用click
事件的结果)"<?php echo base_url(); ?>student/Examinations"
参数percentage
如果您想发送参数,只需修改您的href:"<?php echo base_url(); ?>student/Examinations?percentage=sample_value"
并检入目标脚本$_GET['percentage']
答案 2 :(得分:0)
你没有阻止执行锚标记,你必须预防标记事件
$(document).ready(function () {
$("#submit").click(function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: base_url + "student/Examinations", // or you can take $("#submit").attr('href');
data: {percentage: $("#percentage").text()},
success: function(data) {
console.log(data);
}
});
return false;
});
});