0

我有点困惑为什么这个 CI Ajax 调用不起作用?如果我将 $SearchTerm 设置为字符串,我会收到响应,但它没有收到来自 AJAX 的“搜索”POST?我需要更改 Code Igniter 中的设置吗?谢谢!

jQuery.ajax({
      type: "GET",
      url: 'home/getAjaxData/',
      data: 'search=1',
      dataType: "json",
      success: function(resp) {
         Alert (resp);
      }
  });

 public function getAjaxData() {
    $SearchTerm = $this->input->post('search');
    echo $SearchTerm;       
 }
4

4 回答 4

0

您的代码 $this->input->post('search'),我认为它仅适用于 CodeIgniter 中的 post。您可以使用 jQuery 获取文本框的值,例如:

<input type="textbox" name="text" /><br/>
$('input[name="text"]').val();

正如@badbetonbreakbutbedbac 所说,在您的控制器中,您可以通过以下方式获取搜索值:

$search= (int)$_REQUEST['search'];
echo $search;
于 2013-06-20T02:18:19.590 回答
0

如果 ajax GET 调用适用于 CI,但 ajax POST 不起作用 - 检查 CSRF 保护。禁用它以进行测试(application/config/config.php):

$config['csrf_protection']  = FALSE;

如果随后 ajax POST 调用开始工作,您可以再次启用保护并将 ci_csrf_token 添加为 ajax 数据的一部分。

于 2013-06-20T17:46:47.447 回答
0

将其更改POSTGET

 jQuery.ajax({
      type: "POST",
      url: 'home/getAjaxData/',
      data: 'search=1',
      dataType: "json",
      success: function(resp) {
         alert(resp);
      }
  });

由于您通过 POST 发送数据,因此此功能将正常工作

public function getAjaxData() {
    $SearchTerm = $this->input->post('search');
    echo $SearchTerm;       
 }
于 2013-06-20T17:51:48.580 回答
0
$(function(){
 $.ajax({
          type: "POST",
          url: "<?php echo site_url('home/getAjaxData'); ?>",
          data: {search:'1'},
          dataType: "json",
          success: function(resp) {
             Alert (resp);
          }
      });
 });
于 2013-06-19T16:15:01.913 回答