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

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

あなたのコード $this->input->post('search'), CodeIgniter の投稿でのみ機能すると思います。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

POSTの代わりに変更しますGET

 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 に答える