2014-02-19 120 views
0

我是Yii的新手。我有一个JavaScript变量。该ID必须传递给控制器​​和相应的视图。在访问控制器中的JS变量时遇到问题。请帮帮我。如果JS变量被传递,我将如何检查传入的变量。在此先感谢,将JS变量传递给Yii中的控制器和视图

我从那里JS变量(ID)是通过视图:

<div style="float:left;padding-left:20px;"> 
        <?php echo $form->labelEx($model,'host_customer_id'); ?> 
        <?php 
        echo $form->textField($model,'host_customer_id',array('style'=>'width:420px;')); 
        $this->widget('ext.select2.ESelect2', array(
         'selector' => '#NimsoftHost_host_customer_id', 
         'options' => array(
          'allowClear'=>false, 
          'placeholder' => 'Search Other Customers', 
          'minimumInputLength' => 3, 
          'quietMillis'=>100, 
          'ajax' => array(
           'url' => Yii::app()->createUrl('Nimsoft/customers'), 
           'dataType' => 'jsonp', 
           'data' => 'js: function(term,page) { 
             return { 
              q: term, 
              //ctype: $("#itsmIncidents_cloudcustomer input:radio:checked").val(), 
              page_limit: 10, 
             }; 
            }', 
           'results' => 'js: function(data,page){ 
            return {results: data.details}; 
           }', 
          ), 

          'formatResult' => 'js:function(data){ 
           return data.name; 
           }', 
          'formatSelection' => 'js: function(data) { 
           return data.name; 
          }', 

         ), 
        )); 
        ?> 
        <div style="float:right;padding-left:10px;"> 
         <?php 
         echo CHtml::link('view details', array('/Nimsoft/ciLink'), array(
         'onclick'=>'return hs.htmlExpand(this, { objectType: "iframe", wrapperClassName: "full-size",height:500, align: "center" })', 
          'class'=>'btn btn-block btn-success', 
          'style'=>'width:100px;display:none;', 
          'id'=>'customer_details_pop', 
         )); 
         ?> 
        </div> 
       </div> 


<?php $this->endWidget();?> 

<script> 
$("#NimsoftHost_host_customer_id").on("change", function(e) { 
     <?php echo CHtml::ajax(array(
      'url'=>array('Nimsoft/loadCustType'), 
      'data'=> "js:{'NimsoftHost[host_customer_id]':e.val}", 
      'type'=>'post', 
      'dataType'=>'json', 
      'success'=>"function(data) 
      { 

       // enable customer link 
       $('#customer_details_pop').css('display','block'); 
       $('#customer_details_pop').attr('href', 'Nimsoft/details/'+data.customerid); 
} ", 
     ))?>; 
    }) 
</script> 

这里我传递data.customerid。我想知道这个价值去控制器或不。如果是这样,如何在我的视图中打印(details.php)。

我的控制器动作:

public function actionDetails() 
     { 
      $this->render('details'); 
     } 
+0

dat URL中的a.customerid将是查询字符串而不是会话变量。你知道urlManager吗? – synapze

+0

我已更改我的代码,请现在说 – user3318138

回答

1

你的客户ID变量应作为查询字符串进行传递。

例如:

在您的链接网址应为:

$('#customer_details_pop').attr('href', 'Nimsoft/details/id/'+data.customerid); 

和控制器,你可以检索与ID ...

public function actionDetails($id) 
{ 
    $this->render('details',array('customerId'=>$id)); 
} 

更多请在Yii documentation on Url Management上阅读以下内容

+0

它给了我一个错误: 错误400 您的请求无效。 – user3318138

+0

如果我写echo $ id就足够了;鉴于? – user3318138

+0

保护/ config/main.php中的urlManager配置项是否具有以下条目? '//'=>'/', – synapze

相关问题