0

好吧,我是 Yii 的新手并且有一个问题:我正在从 Jquery Mobile 应用程序向 Yii WorkerController 的 actionJSON() 函数发送一个 ajax POST 请求(带有名字和姓氏参数)。此函数(操作)使用提交的 firstname 和 lastname POST 值的列值检索工作模型。所以这里是代码 - 最后的问题是我的 onSuccess 和 onError 方法都没有在 jquery 中调用。

jQuery 移动 -

$(document).ready(function() {
        $("#submit").click(function(){

            var formData = $("#callAjaxForm").serialize();

            $.ajax({
                type: "POST",
                url: "localhost/myYiiVodovod1/index.php?r=site/json",
                //crossDomain: true,
                cache: false,
                data: formData,
        //dataType   : 'json',
                success: onSuccess,
                error: onError
            });

            return false;
        });
    });  

Yii workerController - 我不确定 findByAttribute() 是否正确:

public function actionJson(){

          if((isset($_POST['firstName']) && isset($_POST['lastName']))){

            header('Content-type: application/json');  

            $model=$this->loadModelTwo($_POST['firstName'],$_POST['lastName']);

            echo CJSON::encode($model);  

        }
            Yii::app()->end();  

    }

public function loadModelTwo($fname,$lname){

        $model = Worker::model()->findByAttributes(array('first_name' => $fname, 'last_name' => $lname));

        if($model===null){
        throw new CHttpException(404,'The requested page does not exist.');
        }              

        return $model;

    }

谢谢。

4

1 回答 1

0

我认为你的问题很简单,除非你有错字。您说您actionJson的位置位于workerContoller但是您的 ajax 调用是,localhost/myYiiVodovod1/index.php?r=site/json因此除非您有一些特殊的 URL 映射,否则它应该在siteController. 很可能您只需要在 ajax 调用中更正您的 url。

此外,在处理 ajax 调用时,最好安装 Firebug 或其他一些插件,这样您就可以看到 ajax 调用和响应。

于 2013-07-09T15:30:27.533 回答