1

助けていただければ幸いです。

次のような機能を持つSiteというコントローラーがあります。

function getID(){
    $id_data = $this->uri->segment(3);
    $name = $this -> session -> userdata('name');
    echo json_encode($this -> getID_model -> getID($id_data,$name ));
}

私のURLは次のようになります

 http://myapp.com/index.php?/site/user/96

リンクを開くと、ユーザー関数がチェックを実行した場合にのみ、ユーザーは自分のページを表示できます。これが、URIデータを読み取る必要があり、getID関数とは別に保持する必要があるため、User関数を削除または変更できない理由です。

ここで私の質問が出てきます。

サイトコントローラーのgetID関数を呼び出す必要があり、3番目のURIID番号が必要です。

以下は私のJQueryです

    var fullurl = $('#hiddenurl').val() + 'index.php?/site/getID/';

$.getJSON(fullurl, function(json) {
    $.each(json, function(i,d) {
        //do my output stuff.
    });
    $('#_description').append(output);
});

コントローラは3番目のURIセグメントを予期しているため、これは機能しません。

このセグメントをURLに追加する方法を教えてもらえますか?ある種のJS解析を使用する必要がありますか?

ありがとうございました。

4

2 に答える 2

2

$id_data確かに、「#hiddenurl」要素をレンダリングするビューの変数にアクセスできます(またはアクセスできます) 。あなたは次のようなことをすることができます:

<input type="hidden" name="whatever" id="whatever" value="<?php echo site_url("site/getID/$id_data"); ?>">

そうすれば、getJSON()呼び出しで使用するURL全体に簡単にアクセスできます。

var my_url = $('#whatever').val();
// Now my_url should contain something like http://example.com/index.php/site/getID/123

注: CodeIgniterのURLヘルパーsite_url()をロードした場合にのみ、長いURLを生成するのではなく使用できます...$this->config->site_url()

于 2013-03-07T03:03:48.430 に答える
0

json fistを取得したい場合は、プレーンテキストではなくjsonを送信する必要があります

function getID(){
 header('Cache-Control: no-cache, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Content-type: application/json');


 $id_data = $this->uri->segment(3);
    $name = $this -> session -> userdata('name');
    echo json_encode($this -> getID_model -> getID($id_data,$name ));
}

そしてこれはjs用です

var valueofsometing=$('#someitng').val();
var base_url = <?=base_url()?>
  jQuery.ajax({
            url:base_url + "/site/getID/" + valueofsometing,
            async:false,
            type:'GET',
            cache:false,
            timeout:30000,
            success:function (result) {
                $('#joblist').append(result);
                $("select.workflow_class").last().uniform()
                initdrag();
            }
        });
于 2013-03-08T02:19:33.183 に答える