如何通过ajaxbutton获取输入文本字段值之一

时间:2014-03-10 01:35:29

标签: yii

如何获取用户的输入值并将其提交给ajax然后再提交给控制器?现在,在我的控制器中,它表示id是$_POST['id']

中未定义的索引

此输入文本字段实际上位于另一种形式中,有点像表单中的表单。

<?php echo $form->textField($model,'email',array('id'=>'email')); ?>
        <?php echo $form->error($model,'email'); ?>
          <?php echo CHtml::ajaxButton ( 'Request Code', 
                CHtml::normalizeUrl(array('site/requestResetCode', 'render'=>true),
                array (
                    'type' => 'POST',
                    //'data'=> array('id'=> 'js:$("#ResetPasswordForm_email").val()'),
                    'data'=> array('id'=> 'js:$("#email").val()'),
                    'success'=>'function(data){
                        if(data.status == "sent")
                            bootbox.alert("Code is sent. Please check your email.");
                        else (data.status == "failed")
                            bootbox.alert("Request Failure");
                        }',
                    'error'=> 'function (xhr, ajaxOptions, thrownError) {
                        alert(xhr.status);
                        alert(thrownError);
                        }',
                )
            ))
        ?>

控制器:

public function actionRequestResetCode()
    {
        $id = $_POST['id'];
//stuff..

1 个答案:

答案 0 :(得分:0)

您的POST数组为空,因为未发送值。你需要制作像

这样的javascript函数
<script type="text/javascript">

    function getVal()
    { 
    var value= $("#myEmail").attr('value');
    alert(value);
    return value;

    }
    </script>

检查警报是否显示正确的值,然后删除此警报语句。如果它没有显示该值,则表示文本字段的ID存在问题。
如果你使用它,那就像使用它一样使用它

 'data'=> array('id'=> 'js:getVal()'),