2013-07-09 1 views
0

хорошо Я новичок в Yii и имею проблему: я отправляю запрос POJ ajax (с параметрами firstname и lastname) из приложения JQuery Mobile в действие YY WorkerControllerJSON() функция. Эта функция (действие) извлекает рабочую модель со значениями столбцов с указанными значениями firstname и lastname POST. Итак, вот код. Проблема в том, что ни один из моих методов onSuccess и onError не вызван в jquery.Yii: Render Json из модели в действии контроллера

JQuery Mobile -

$(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

Я думаю, что ваша проблема проста, если у вас нет опечатки. Вы говорите, что ваш actionJson находится в workerContoller, однако ваш айхакс-звонок составляет localhost/myYiiVodovod1/index.php?r=site/json, поэтому, если вы не используете какое-то специальное URL-адрес, он должен нанести удар по siteController. Скорее всего, вам просто нужно исправить свой URL-адрес при вызове ajax.

Также при работе с вызовами ajax всегда приятно установить Firebug или какой-либо другой плагин, чтобы вы могли увидеть вызов ajax и ответ.

Смежные вопросы