正在获取文本框值


Getting the textbox value

我真的是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框架(模型,视图控制器),最好的做法是保持整个结构是这样的。学习它的最好方法是从他们拥有的很棒的论坛。

因此,要定义要从表单中保存数据/文本框的场景,您需要遵循以下工作流:

基本工作流

假设您不想将数据保存在数据库中

我假设框架如何工作的基本知识是已知的。如果没有,您可以查看指南和其他教程。

这是一个基本的工作流程,其中数据将从表单中获取并在模型中进行验证。

  1. 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。

我希望我能帮上忙。