0

この質問は、Emberjs で動作する Ajax POST を取得できないという質問から派生しています。

コンソールで POST リクエストが送信されているのを確認できますが、データはデータベースに 0 として挿入されています。

これが私のバックエンドです。私は Codeigniter を使用しています。

コントローラ、

function createNewProject() {
                $this -> load -> model('usermodel');
                $projectname = $this -> input -> post('projectname');
                $projectdesc = $this -> input -> post('projectdesc');
                $this -> usermodel -> createProject($projectname, $projectdesc);
        }

モデル:

function createProject($projectname, $projectdesc) {
                $this -> db -> set('projectname', $projectname);
                $this -> db -> set('projectdesc', $projectdesc);
                $q = $this -> db -> insert('projects');
                return;
        }

これが更新されたApp.jsコントローラーです。

App.ProjectController = Ember.ArrayController.extend({
    actions : {
        createNew : function() {
            App.Project.createNew();
        }
    }
});

App.ProjectRoute = Ember.Route.extend({

});

App.Project.reopenClass({
    createNew : function() {

        dataString = $("#project").serialize();

        $.ajax({
            type : "POST",
            url : "http://ankur.local/users/createNewProject",
            data : dataString,
            dataType : "json",
            success : function(data) {
                alert("yes");
            }
        });
        return false;
    }
});

そして、リンクされた投稿と奇妙なものが表示された場合、HTML は同じです。成功した場合でも警告ボックスが表示されません。どこで間違いを犯している可能性がありますか?

4

2 に答える 2

1

CodeIgniter の入力クラスについて - 「取得しようとしている項目が存在しない場合、関数は FALSE (ブール値) を返します。」

基本的に、問題は $_POST['projectname'] と $_POST['projectdesc'] が CI コントローラーに提示されていないため、CI 入力クラスを呼び出すと 0 が返されることです。

于 2013-10-01T05:22:19.947 に答える