2015-02-05 2 views
0

У меня возникают проблемы с $ _POST ["var"] на контроллере. Кажется, он пуст. Как я могу получить строку, набранную в моем текстовом файле?

Посмотреть

<?php Yii::app()->clientScript->registerCoreScript("jquery"); ?> 
       <script type="text/javascript"> 
       $(document).ready(function(){ 
         $("#hhmm").change(function(){ 
         $.ajax({ 
         url: "<?php echo CController::createUrl('reqTest01Loading'); ?>", 
           data: $(this).serialize(), 
           type: "post", 
           dataType: "json", 
           success: function(data) { 
             if (data.status === 'failure') { 
              $('#impatto').val('Error request failed.'); 
             } else { 
               $("#impatto").html(data.total);  
             } 

           } 
         }); 
         }); 

       }); 
       </script> 

Контроллер

public function actionReqTest01Loading() { 

    $result = array("total" => $_POST['hhmm'], "status"=>"OK"); 
      echo CJSON::encode($result); 
} 

правила на контроллере

array('allow', // allow all users to perform 'index' and 'view' actions 
      'actions'=>array('reqTest01Loading','index','view','admin'), 
      'users'=>array('@'), 
     ), 

first of click impatto calcolo after of click impatto calcolo

заранее спасибо

+0

использование CVarDumper :: Dump ($ _ POST, 100, правда); в вашем контроллере, чтобы просмотреть все данные, отправляемые через ajax. –

+0

вы пытаетесь $ _POST ['hhmm'], что неверно, потому что ajax не устанавливает идентификатор элемента html. Вы можете попробовать $ _POST ['data'] –

+0

print_r ($ _ POST) и проверить, что его возвращает – Sky

ответ

0

Это потому, что вы не говорите АЯКС вызов для отправки параметров.

Try:

$.ajax({ 
    url: "<?php echo CController::createUrl('reqTest01Loading'); ?>", 
     data: {data:$(this).serialize()}, 
     type: "post", 
     dataType: "json", 
     success: function(data) { 
      if (data.status === 'failure') { 
       $('#impatto').val('Error request failed.'); 
      } else { 
       $("#impatto").html(data.total);  
      } 

     } 
    }); 

И контроллер:

public function actionReqTest01Loading() { 
    // var_dump(Yii::app()->request->getPost('data')); 
    $result = array("total" => Yii::app()->request->getPost('data'), "status"=>"OK"); 
    echo CJSON::encode($result); 
} 
+0

Посмотрите мое обновление. – TNC

+0

Привет, TNC, я обновил код, как вы говорите, даже ** Контроллер ** выглядит так: 'public function actionReqTest01Loading() { var_dump (Yii :: app() -> request-> getPost ('data')); $ result = array ("total" => 60 + $ _POST ['hhmm'], "status" => "OK"); echo CJSON :: encode ($ result); } ' ' var_dump (Yii :: app() -> request-> getPost ('data')); 'запрещает вызов ajax После того, как я прокомментировал эту строку, я добавил ** 60 + **, поэтому в просмотр позволяет мне видеть только 60, но не суммировать ** hhmm ** как нет $ _POST ["hhmm"] Еще раз спасибо –

+0

Вы можете получить '$ (this) .serialize()' in 'Yii: : приложение() -> request-> getPost ('данные') '; Проверьте значение на '$ (this) .serialize()' – TNC