添加创建Yii框架新的链接下拉列表
我在Yii框架新手,在Yii Framework
做一个小的应用程序,我有数据库Invoice
和Customers
这样添加创建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
现在按我的需求量的我需要所有可用的客户名称应该来的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>
它显示从customer table
可用customers name
。但我需要更多的一件事。这就是它会显示一个额外的链接在下拉,称为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>
这是工作,但我想在下拉列表中没有dropdown.So外内create Customers
链接怎么办那?任何帮助和建议都会非常明显。
你可以创建一个与标签新客户空选择项目,这样
$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>
在这一行'$ form-> dropdownList($ customers,'customer_name',CHtml :: listData(Customers :: model() - > findAll(),'id','customer_name'),array('empty'= > array(''=>'选择一个','new'=>'New Client'))'New Client'在下拉列表中不可见 – NewUser 2012-03-29 10:01:17
我认为这是因为我没有为第一个选项,而且最后还有一个支架丢失了。更新了,现在试试:) – adamors 2012-03-29 11:06:36
您更新的代码不工作,它没有显示新客户端选项。 – NewUser 2012-04-02 13:59:30
就像我说的,你可以有多个空白的项目在你的选择,并用JavaScript可以显示/隐藏对话框窗口,如果一个特定的项目是选择。我更新了我的答案,我不能说比这更清楚。 – adamors 2012-04-02 08:21:22