2013-07-09 3 views
0

잘 Yii에 익숙하며 문제가 있습니다. Jquery Mobile 앱에서 Yii WorkerController의 actionJSON()으로 ajax POST 요청 (이름 및 성 매개 변수 포함) 기능. 이 함수 (조치)는 제출 된 firstname 및 lastname POST 값의 컬럼 값으로 작업자 모델을 검색합니다. 그래서 여기에 코드가 있습니다 - 결국 문제는 내 onSuccess 메서드와 onError 메서드 모두 jquery에서 호출되지 않는다는 것입니다.Yii : Controller 액션에서 모델의 Json 렌더링하기

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; 

    } 

감사합니다.

답변

0

오타가없는 한 문제가 간단하다고 생각합니다. actionJsonworkerContoller에 있지만, 아약스 호출이 localhost/myYiiVodovod1/index.php?r=site/json 인 경우에는 특별한 URL 매핑이 siteController이어야합니다. 대부분의 경우 Ajax 호출에서 URL을 수정해야합니다.

또한 ajax 호출을 처리 할 때는 Firebug를 설치하거나 다른 플러그인을 사용하는 것이 좋습니다. 그러면 ajax 호출 및 응답을 볼 수 있습니다.

관련 문제