2014-02-19 166 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

相關問題