我真的是Yii的新手,作为一名初学者,我想知道如何在按下按钮时从文本框中获取值。
<?php CHtml::textField($name,$value,array('submit'=>'')); ?>
<?php echo CHtml::submitButton('Greet!',array(
'submit' => 'message/goodbye')); ?>
保持您的视图类似
<?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事件的动作脚本是
<script type="text/javascript">
function getValue()
{
$text=$("#aForm").find('input[name="name"]').val();
alert($text);
//$formData=$("#aForm").serialize();
}
</script>
理解基本概念
你必须记住Yii是一个MVC框架(模型,视图控制器),最好的做法是保持整个结构是这样的。学习它的最好方法是从他们拥有的很棒的论坛。
因此,要定义要从表单中保存数据/文本框的场景,您需要遵循以下工作流:
基本工作流
假设您不想将数据保存在数据库中:
我假设框架如何工作的基本知识是已知的。如果没有,您可以查看指南和其他教程。
这是一个基本的工作流程,其中数据将从表单中获取并在模型中进行验证。
- 在
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。
我希望我能帮上忙。