我的 jquery 看起来像这样: ``
$("printButton").click(function(){
var limit = $(#per_page_pendapatan).val();
var page = <?php echo $this->url->segmetn(3) ? $this->url->segment(3) : 1; ?>;
$.post({
url: "<?php echo base_url('index.php/Pendapatan/process_pdf'); ?>",
type : "post",
dataType : "json",
data : {"limit" : limit, "page" : page},
success : function (data){
console.log(limit);
console.log(page);
alert("Data berhasil dikirim ke controller");
},error : function(data){
alert("Data gagal diterima");
}
});
});
``
以及接受数据的控制者:
``
public function process_pdf(){
$limit = $this->input->post('limit');
$page = $this->input->post('page');
echo "limit".$limit.nl2br("\n");
echo "page".$page;
}
``
问题是为什么我的控制器不接受数据?
您的代码中可能存在一些可能导致该问题的问题。
jQuery 选择器中的拼写错误: 在 jQuery 代码中,您在
$(#per_page_pendapatan)
选择器中的 per_page_pendaptan 之前缺少 # 符号。应该是$("#per_page_pendapatan")
。
$.post
中的语法错误:
您使用 $.post
的方式不正确。您应该将 URL 作为第一个参数传递,将数据作为第二个参数传递。此外,您正在使用 dataType 参数,在本例中这是不必要的,因为您需要 JSON,并且 jQuery 将自动解析 JSON 响应。这是更正后的$.post code
:
$("printButton").click(function(){
var limit = $("#per_page_pendapatan").val();
var page = <?php echo $this->uri->segment(3) ? $this->uri->segment(3) : 1; ?>;
$.post(
"<?php echo base_url('index.php/Pendapatan/process_pdf'); ?>",
{"limit": limit, "page": page},
function(data) {
console.log(limit);
console.log(page);
alert("Data berhasil dikirim ke controller");
}
).fail(function(data) {
alert("Data gagal diterima");
});
});
此外,请确保您的按钮元素具有正确的 ID 属性,例如
<button id="printButton">Print</button>.
URI 段函数名称: 您的段函数调用似乎有一个拼写错误。应该是
$this->uri->segment(3) instead of $this->url->segment(3).
检查基本 URL: 确保
base_url('index.php/Pendapatan/process_pdf')
中的 base_url 正确指向您的 CodeIgniter 应用程序的 URL。
检查控制器和方法名称: 仔细检查 URL 中的控制器名称 (Pendapatan) 和方法名称 (process_pdf) 是否与控制器类和方法的实际名称匹配。
如果您已解决这些问题,但您的代码仍然无法运行,请提供有关您遇到的任何错误消息的更多详细信息或任何其他相关信息。