Добавить создать новую ссылку в раскрывающемся списке Yii Framework - PullRequest
2 голосов
/ 29 марта 2012

Я новичок в Yii Framework и делаю небольшое приложение в Yii Framework, у меня есть база данных для Invoice и Customers вот так

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

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

Теперь по моему требованию мне нужновсе доступные имена клиентов должны отображаться в списке dropdown в форме создания счета-фактуры, поэтому я внес изменения в Invoice form.php, чтобы назвать все доступные имена клиентов следующим образом:

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

Показывает доступные customers name из customer table. Но мне нужно еще кое-что. То есть в выпадающем меню будет отображаться ссылка на добавление, называемая Create One. Где администратор нажмет на эту ссылку, и один lightbox придет с create 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>

Работает, но я хочу create Customers ссылку внутри выпадающего списка, а не вне выпадающего списка. Так как это сделатьчто? любой чelp и предложение будут очень заметны.

1 Ответ

1 голос
/ 29 марта 2012

Вы можете создать пустой элемент выбора с меткой Новый клиент, например,

$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
  }
})

ОБНОВЛЕНИЕ, чтобы отразить ваше обновление

<?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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...