我是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
。我还上传了一些图片以供参考。任何帮助和建议都将非常感激。参考图像已上传到此处。
[更新] 我向前迈进了一步,做了这个改变
<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
链接不在下拉列表之外。那么怎么做?任何帮助和建议都会非常明显。
答案 0 :(得分:1)
您可以使用标签New Client创建一个空的选择项,如此
$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>