0

ユーザー名が ajax と codeigniter を使用して使用できるかどうかを確認しようとしています。js で codeingniter コントローラーからの応答を取得するのに問題があります。ファイルですが、成功しませんでした。

質問に関連するコントローラー関数は次のとおりです。

if ($username == 0) {  
    $this->output->set_output(json_encode(array("r" => true)));
} else {   
    $this->output->set_output(json_encode(array("r" => false, "error" => "Username already exits")));
}

ユーザー名がデータベースに既に存在する場合は 1 を取得し、存在しない場合は 0 を取得します。

次のjs.fileがあります

// list all variables used here...
var
    regform = $('#reg-form'),
    memberusername = $('#memberusername'),
    memberpassword = $('#memberpassword'),
    memberemail = $('#memberemail'),
    memberconfirmpassword = $('#memberconfirmpassword');



regform.submit(function(e) {

e.preventDefault();

console.log("I am on the beggining here"); // this is displayed in console


var memberusername = $(this).find("#memberusername").val();
var memberemail = $(this).find("#memberemail").val();
var memberpassword = $(this).find("#memberpassword").val();
var url = $(this).attr("action");

$.ajax({
    type: "POST",
    url: $(this).attr("action"),
    dataType: "json",
    data: {memberusername: memberusername, memberemail: memberemail, memberpassword: memberpassword},
    cache: false,
    success: function(output) {
        console.log('I am inside...'); // this is never displayed in console...
            console.log(r); // is never shonw in console
            console.log(output); is also never displayed in console  
    $.each(output, function(index, value) {
            //process your data by index, in example



        });
    }


});
return false;

})

ajaxでrのユーザー名の値を取得するのを手伝ってくれる人はいますか?

乾杯

4

1 に答える 1

0

基本的に、ハンドラーが呼び出されることはないと言っています。successつまり、リクエストに何らかのエラーが発生したことを意味します。ハンドラーを追加する必要があり、場合によってはerrorハンドラーを追加する必要がありcompleteます。これにより、少なくともリクエストで何が起こっているかがわかります。(他の誰かが Chrome Dev Tools の使用について言及しました -- はい、そうしてください!)

解析エラーに関する限り。リクエストは json データを想定していますが、データを json として返してはなりません (json としてフォーマットされていますが、コンテンツ タイプ ヘッダーがない場合、ブラウザーはテキストとして扱います)。PHP コードを次のように変更してみてください。

if ($username == 0) {  
    $this->output->set_content_type('application/json')->set_output(json_encode(array("r" => true)));
} else {   
    $this->output->set_content_type('application/json')->set_output(json_encode(array("r" => false, "error" => "Username already exits")));
}
于 2013-08-13T07:58:15.027 に答える