我是PHP
,Yii
的新手 - 一般的框架和网络编程。
所以我在编写简单的注册表时遇到了一些困难。
我有表Persons
,Categories
,Properties
,CategoryProperties
,PropertyValues
:
Persons ( name, category_id)
Categories(category_id, category_name)
Properties(propety_id, property_name)
CategoryProperties(category_id, property_id)
PropertyValues(property_id, category_id, person_id, some_value)
例如,category_name = 'teacher'
,property='work experience
',some_value='15'
。
根据选择的category
,我们应该显示具有与该类别匹配的属性的块。
如何从下拉列表(类别)中获取选定值并使用它来显示另一个依赖于该值和其他数据库表的表单?
到目前为止,我只有这个
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name'); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'category'); ?>
<?php
echo $form->dropDownList($model,'category',
Categories::model()->getAssocList(), array('empty'=>'Select category')?>
<?php echo $form->error($model,'category'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('AddReader'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
答案 0 :(得分:1)
不确定我是否正确,你是否尝试在第一次使用php修改第二个组合后更新第二个组合?如果是这样,你就不能。
你必须使用JavaScript,如果你使用的是数据库,可能就是Ajax。
记住PHP是服务器端语言,您必须再次发布表单才能更新它。这就是你应该使用在浏览器上运行的javascript的原因。