我是Yii的新手,作为首发,我想知道在按下按钮时如何从文本框中获取值。
<?php CHtml::textField($name,$value,array('submit'=>'')); ?>
<?php echo CHtml::submitButton('Greet!',array(
'submit' => 'message/goodbye')); ?>
答案 0 :(得分:2)
让你的观点像
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'aForm',
'htmlOptions' => array('onsubmit'=>"return false;"),
));
?>
<?php echo CHtml::textField('name', 'value'); ?>
<?php echo CHtml::submitButton('Greet!', array('onclick' => 'getValue()'));?>
<?php $this->endWidget(); ?>
onclick事件的Action Script是
<script type="text/javascript">
function getValue()
{
$text=$("#aForm").find('input[name="name"]').val();
alert($text);
//$formData=$("#aForm").serialize();
}
</script>
答案 1 :(得分:1)
你必须记住,Yii是MVC framework(模型,视图控制器),最佳做法是保持整个结构。学习它的最好方法是来自他们的精彩论坛。
因此,要定义您希望从表单保存数据/文本框的场景,您将遵循以下工作流程:
假设您不想将数据保存在数据库中。:
我将假设已知有关框架如何工作的基本知识。如果没有,您可以查看指南和其他教程。
这是一个基本工作流程,在该工作流程中,数据将从表单中获取并在模型中进行验证。
protected/models
文件夹示例:让我们将此文件命名为FormData.php
<?php
class FormData extends CFormModel{
public $name;
public $email;
public function rules()
{
return array(
array('name , email','required'), // This rule would make it compulsory for the data to be added.
array('email','email'), // This will check if the email matches the email criteria.
);
}
public function attributeLabels()
{
return array(
'name' => 'Enter your name',
'email' => 'Enter your email',
);
}
}
?>
2。在此之后,在protected/FormController.php
添加:
<?php
class Formdata extends CController{
public function actionCoolForm()
{
$model = new FormData();
if(isset($_POST['FormData'])){
$model->attributes = $_POST['FormData'];
if($model->validate()){
// Do whatever you want to do here.
}
}
$this->render('someview',array('model'=>$model));
}
}
?>
3。现在,在页面中添加表单很简单:
<?php echo CHtml::form('formdata/coolform','post'); ?>
<?php
echo CHtml::activeTextField($model,'name');
echo CHtml::activeTextField($model,'email');
?>
<?php echo CHtml::endForm(); ?>
在数据库中添加它的最佳和最简单的方法是使用Gii。 但代码几乎相同,只是模型扩展了CModel。
我希望我能够提供帮助。