2012-03-29 12 views
2

をドロップダウンし、Yii Frameworkに小さなアプリケーションをやって、私は私のrequirmentごととして今、このは、私はYiiのフレームワークで初心者ですリスト

==== Invoice ==== 
    id 
    customer_id 
    invoice_title 
    invoice_no 
    invoice_issue_date 
    created_by 
    updatd_by 

    === Customers === 
    id 
    customer_name 
    address 
    business_address 
    city 
    state 

ようInvoiceCustomersのためのデータベースを持っているのYii Frameworkの新しいリンクを作成して追加します。私は、利用可能なすべての顧客名は、私が利用可能なすべての顧客がこの

<div class="row"> 
<?php echo $form->labelEx($customers,'customer_name'); ?> 
<?php echo $form->dropdownList($customers,'customer_name', CHtml::listData(Customers::model()->findAll(), 'id', 'customer_name'), array('empty'=>'Choose one')); ?> 
<?php echo $form->error($customers,'customer_name'); ?> 
</div> 

のような名前に呼び出すInvoice form.phpで変更を加えたので、フォームを作成し、請求書にdropdownリストに来るべき必要があります利用可能なcustomers namecustomer tableから表示していますが、私はさらに1つ必要です。それはCreate Oneと呼ばれるドロップダウンの追加リンクを表示します。管理者がこのリンクをクリックすると、lightboxcreate customer formとなります。入力されたデータはcustomer tableに保存されます。参照用にいくつかの画像もアップロードしています。助けや提案は非常に高い評価を受けます。参考画像はここにアップロードされています。 enter image description here

私は一歩前進行って、これはそれが働いている

<div class="row"> 
     <?php echo $form->labelEx($customers,'customer_name'); ?> 
     <div id="job"> 
     <?php echo $form->dropDownList($customers,'customer_name',CHtml::listData(Customers::model()->findAll(),'id','customer_name'),array('prompt'=>'Select')); ?> 
     <?php echo CHtml::ajaxLink(Yii::t('customers','Create customers'),$this->createUrl('customers/create'),array(
     'onclick'=>'$("#customers").dialog("open"); return false;', 
     'update'=>'#jobDialog' 
    ),array('id'=>'showJobDialog'));?> 
    <div id="jobDialog"></div> 
    </div> 
    </div> 

変更しかし、私はどのように行うにはないdropdown.So外のドロップダウンリスト内のcreate Customersリンクをしたい作った [更新]それはどんな助けと提案も非常に感知できるでしょう。

+0

を反映するためにUPDATE選択された。私は私の答えを更新しました、私はこれよりも明確にすることはできません。 – adamors

答えて

1

あなたはこの

$form->dropdownList($customers,'customer_name', CHtml::listData(Customers::model()->findAll(), 'id', 'customer_name'), array('empty'=>array('choose'=>'Choose one','new'=>'New Client'))) 

のように、ラベル新しいクライアントで空の選択項目を作成し、jQueryの機能が待機してい、「新しいクライアント」が選択されている場合は、ライトボックスのポップアップをトリガすることができます。

$('your_select').change(function(){ 
    if($(this).val() == 'new') { 
    // do something 
    } 
}) 

私はあなたの選択で複数の空白のアイテムを持っている、とあなたがある特定のアイテムであった場合、ダイアログウィンドウを表示/非表示することができますJavaScriptでできる、言ったように、あなたの更新

<?php 
    echo $form->dropDownList(
        $customers,'customer_name', 
        CHtml::listData(Customers::model()->findAll(), 'id', 'customer_name'), 
        array('prompt'=>'Select', 'empty'=>array('choose'=>'Choose'), 'id'=>'customersSelect') 
      ); 
?> 

<script type='text/javascript'> 
    $(document).ready(function(){ 
     $('#customersSelect').change(function(){ 
      if($(this).val() == 'choose') { 
      $("#customers").dialog("open"); 
      } 
     }); 
    }); 
</script> 
+0

この行には$ form-> dropdownList($ customers、 'customer_name'、CHtml :: listData(Customers :: model() - > findAll()、 'id'、 'customer_name')、array( 'empty' = > 'new Client'はドロップダウンリストに表示されません – NewUser

+0

私は最初の値に値を追加しなかったためです更新してみてください:) – adamors

+0

更新したコードは動作していません。新しいクライアントが表示されていません。 – NewUser

関連する問題