0

ajaxに問題がありました。トリックは、ユーザーが一番上のハイパーリンクをクリックすると、onclick=getChildMenuLink(str) を介してリンク ID を送信することです。次に、getChildMenuLink(str) 関数から、str を ajax 経由で (セッションを設定するために) コントローラーに送信します。これがコードです。

htmlコード

<a href="http://localhost/ejournal/index.php/sysconfig" onclick="getChildMenuLink(1)">Administrator</a>

<a href="http://localhost/ejournal/index.php/welcome" onclick="getChildMenuLink(22)">Home</a>

jquery ajax

function getChildMenuLink(str) {
        'use strict';


        $.ajax({
            type: 'POST',
            url: "http://localhost/ejournal/index.php/sysconfig/getLink/" + str,
            success: function () {} // End of success function of ajax form           
        });  // End of ajax call

        //alert(document.URL);    
    }

コードイグナイターコントローラー

function getLink($id='')
{
    $this->session->unset_userdata('parentLink'); 
    $this->session->set_userdata('parentLink',$id);
}

そのスクリプトの alert() 関数のコメントを外すと、機能します。PHP セッションが適切に設定されています。私を助けてください

4

1 に答える 1

3

1 つの問題は、ajax 呼び出しでsuccess: loadUrl(). これはおそらくあなたが意図したものではありません。続く値successは関数であることを意図していますが、関数でloadUrl()はなく、関数の呼び出しです。loadUrl(これが機能する唯一の状況は、関数を返す関数の場合であるため、おそらくあなたが望むものではないと言います。)

おそらくあなたが本当に望んでいるのは

success: loadUrl

(括弧なし) または、おそらくより明示的に、

success: function() { loadUrl(); }

追加するために編集:

わかりました、明らかにそうではありませんでした。次に試すこと: 成功のコールバックに加えて、エラーのコールバックを追加して、エラーが発生しているかどうかを確認できるようにします。

    $.ajax({
        type: 'POST',
        url: "http://localhost/ejournal/index.php/sysconfig/getLink/" + str,
        success: function () {alert("success!")},
        error: function(jqXHR, textStatus, errorThrown) { alert(textStatus + " " + errorThrown) }           
    });
于 2012-06-22T02:47:40.677 に答える