English 中文(简体)
工作 工作 juiautiful 完全显示例外
原标题:Working on cjuiautocomplete Showing Exception

我从Te来源尝试了代码

"http://www.yiiplayfloor.cubedwater.com/index.php?r=UiModule/jui/ziiAutocomplete" rel=“nofollow”>来源代码i 用于 CJUIAutoComplee

not getting where the mistake is error showing as not authorised please help me i am new to Yii framework and for Debugging also.

我的错误日志

2012/05/25 06:07:28 [error] [exception.CHttpException.403] exception  CHttpException  with message  You are not authorized to perform this action.  in C:wampyiiframeworkwebauthCAccessControlFilter.php:157 

Stack trace:
#0 C:wampyiiframeworkwebauthCAccessControlFilter.php(120) CAccessControlFilter->accessDenied(Object(CWebUser),  You are not aut... )
#1 C:wampyiiframeworkwebfiltersCFilter.php(39) CAccessControlFilter->preFilter(Object(CFilterChain))

#2 C:wampyiiframeworkwebCController.php(1146): CFilter->filter(Object(CFilterChain))
#3 C:wampyiiframeworkwebfiltersCInlineFilter.php(59) CController->filterAccessControl(Object(CFilterChain))


#4 C:wampyiiframeworkwebfiltersCFilterChain.php(131) CInlineFilter->filter(Object(CFilterChain))

#5 C:wampyiiframeworkwebCController.php(292): CFilterChain->run()

#6 C:wampyiiframeworkwebCController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)

#7 C:wampyiiframeworkwebCWebApplication.php(276): CController->run( autocompleteTes... )

#8 C:wampyiiframeworkwebCWebApplication.php(135): CWebApplication->runController( details/autocom... )

#9 C:wampyiiframeworkaseCApplication.php(162): CWebApplication->processRequest()

#10 C:wampwwwmyappindex.php(13): CApplication->run()

#11 {main}
REQUEST_URI=/myapp/index.php?r=details/autocompleteTest&term=asss
HTTP_REFERER=http://localhost/myapp/index.php?r=details/create

<强 > 主计长代码

<?php
class DetailsController extends Controller
{
/**
 * @var string the default layout for the views. Defaults to  //layouts/column2 , meaning
 * using two-column layout. See  protected/views/layouts/column2.php .
 */
public $layout= //layouts/column2 ;

/**
 * @return array action filters
 */
public function filters()
{
    return array(
         accessControl , // perform access control for CRUD operations
    );
}

    public function actionAutocompleteTest() {
$res =array();

if (isset($_GET[ term ])) {
    $qtxt ="SELECT name FROM {{details}} WHERE name LIKE :username";
    $command =Yii::app()->db->createCommand($qtxt);
    $command->bindValue(":name",  % .$_GET[ term ]. % , PDO::PARAM_STR);
    $res =$command->queryColumn();
}

echo CJSON::encode($res);
Yii::app()->end();
}


/**
 * Specifies the access control rules.
 * This method is used by the  accessControl  filter.
 * @return array access control rules
 */
public function accessRules()
{
    return array(
        array( allow ,  // allow all users to perform  index  and  view  actions
             actions =>array( index , view ),
             users =>array( * ),
        ),
        array( allow , // allow authenticated user to perform  create  and  update  actions
             actions =>array( create , update ),
             users =>array( @ ),
        ),
        array( allow , // allow admin user to perform  admin  and  delete  actions
             actions =>array( admin , delete ),
             users =>array( admin ),
        ),
        array( deny ,  // deny all users
             users =>array( * ),
        ),
    );
}

/**
 * Displays a particular model.
 * @param integer $id the ID of the model to be displayed
 */
public function actionView($id)
{
    $this->render( view ,array(
         model =>$this->loadModel($id),
    ));
}

/**
 * Creates a new model.
 * If creation is successful, the browser will be redirected to the  view  page.
 */
public function actionCreate()
{
    $model=new Details;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST[ Details ]))
    {
        $model->attributes=$_POST[ Details ];
        if($model->save())
            $this->redirect(array( view , id =>$model->id1));
    }

    $this->render( create ,array(
         model =>$model,
    ));
}

/**
 * Updates a particular model.
 * If update is successful, the browser will be redirected to the  view  page.
 * @param integer $id the ID of the model to be updated
 */
public function actionUpdate($id)
{
    $model=$this->loadModel($id);

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST[ Details ]))
    {
        $model->attributes=$_POST[ Details ];
        if($model->save())
            $this->redirect(array( view , id =>$model->id1));
    }

    $this->render( update ,array(
         model =>$model,
    ));
}

/**
 * Deletes a particular model.
 * If deletion is successful, the browser will be redirected to the  admin  page.
 * @param integer $id the ID of the model to be deleted
 */
public function actionDelete($id)
{
    if(Yii::app()->request->isPostRequest)
    {
        // we only allow deletion via POST request
        $this->loadModel($id)->delete();

        // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        if(!isset($_GET[ ajax ]))
            $this->redirect(isset($_POST[ returnUrl ]) ? $_POST[ returnUrl ] : array( admin ));
    }
    else
        throw new CHttpException(400, Invalid request. Please do not repeat this request again. );
}

/**
 * Lists all models.
 */
public function actionIndex()
{
    $dataProvider=new CActiveDataProvider( Details );
    $this->render( index ,array(
         dataProvider =>$dataProvider,
    ));
}

/**
 * Manages all models.
 */
public function actionAdmin()
{
    $model=new Details( search );
    $model->unsetAttributes();  // clear any default values
    if(isset($_GET[ Details ]))
        $model->attributes=$_GET[ Details ];

    $this->render( admin ,array(
         model =>$model,
    ));
}

/**
 * Returns the data model based on the primary key given in the GET variable.
 * If the data model is not found, an HTTP exception will be raised.
 * @param integer the ID of the model to be loaded
 */
public function loadModel($id)
{
    $model=Details::model()->findByPk($id);
    if($model===null)
        throw new CHttpException(404, The requested page does not exist. );
    return $model;
}



/**
 * Performs the AJAX validation.
 * @param CModel the model to be validated
 */
protected function performAjaxValidation($model)
{
    if(isset($_POST[ ajax ]) && $_POST[ ajax ]=== details-form )
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
}
}

<强度/强度 > 格式代码

<div class="form">

<?php $form=$this->beginWidget( CActiveForm , array(
     id => details-form ,
     enableAjaxValidation =>false,
)); ?>

    <p class="note">Fields with <span class="required">*</span> are required.</p>

    <?php echo $form->errorSummary($model); ?>

    <div class="row">
        <?php echo $form->labelEx($model, id ); ?>


        <?php echo $form->textField($model, id ); ?>
        <?php echo $form->error($model, id ); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model, name ); ?>
        <?php $this->widget( zii.widgets.jui.CJuiAutoComplete , array(
     name => test1 ,
     value => test21 ,
     source =>$this->createUrl( details/autocompleteTest ),
    // additional javascript options for the autocomplete plugin
     options =>array(
             showAnim => fold ,
    ),
));
    ?>
                <?php echo $form->error($model, name ); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model, phone ); ?>
        <?php echo $form->textField($model, phone ); ?>
        <?php echo $form->error($model, phone ); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model, email ); ?>
        <?php echo $form->textField($model, email ); ?>
        <?php echo $form->error($model, email ); ?>
    </div>

    <div class="row buttons">
        <?php echo CHtml::submitButton($model->isNewRecord ?  Create  :  Save ); ?>
    </div>

<?php $this->endWidget(); ?>

</div><!-- form -->

Thanks Devendar

最佳回答

试试这个很简单的...

public function actionAutoCompleteLookup()
        {
           if(Yii::app()->request->isAjaxRequest && isset($_GET[ q ]))
           {

              $name = $_GET[ q ]; 

               $qtxt ="SELECT name FROM details WHERE name LIKE  %".$name."% ";
               $command =Yii::app()->db->createCommand($qtxt);

               $userArray =$command->queryColumn();

              $returnVal =   ;
              foreach($userArray as $userAccount)
              {
                 $returnVal .= $userAccount->getAttribute( first_name ). | 
                                             .$userAccount->getAttribute( user_id )."
";
              }
              echo $returnVal;
           }
        }

在视觉代码中像这样...

<?php $this->widget( CAutoComplete ,
          array(
                         //name of the html field that will be generated
              name => name , 
                       //replace controller/action with real ids
              url =>array( detail/AutoCompleteLookup ), 
              max =>10, //specifies the max number of items to display

                         //specifies the number of chars that must be entered 
                         //before autocomplete initiates a lookup

             ));
    ?>

它的工作很好......

问题回答

您必须更新您的“ 详细主计长 ” :

array( allow , 
      // allow authenticated user to perform  create ,  update  and  autocompleteTest  actions
       actions =>array( create , update ,  autocompleteTest ),
       users =>array( @ ),
),

主计长守则:

名称是模型(数据库表格)的属性。

public function actionAutoCompleteLookup() {
    $res =array();

    if (isset($_GET[ term ])) {

        $qtxt ="SELECT name FROM customer WHERE name LIKE :name";
        $command =Yii::app()->db->createCommand($qtxt);
        $command->bindValue(":name",  % .$_GET[ term ]. % , PDO::PARAM_STR);
        $res =$command->queryColumn();
    }

    echo CJSON::encode($res);
    Yii::app()->end();
}

查看代码

创建 URL - 控制器 Name/ Actionin (职能名称 u 以控制器写)

        <?php $this->widget( zii.widgets.jui.CJuiAutoComplete , array(
     name => test2 ,
     source =>$this->createUrl( Customer/AutoCompleteLookup ),

              options =>array(
              showAnim => fold ,
              ), 
));
    ?>

感谢堆积溢流





相关问题
getGridParam is not a function

The HTML: <a href="javascript:void(0)" id="m1">Get Selected id s</a> The Function: jQuery("#m1").click( function() { var s; s = jQuery("#list4").getGridParam( selarrrow )...

selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

jQuery cycle page with links

I am using the cycle plugin with pager functionality like this : $j( #homebox ) .cycle({ fx: fade , speed: fast , timeout: 9000, pager: #home-thumbs , ...

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

jConfirm with this existing code

I need help to use jConfirm with this existing code (php & Jquery & jAlert). function logout() { if (confirm("Do you really want to logout?")) window.location.href = "logout.php"; } ...

Wrap text after particular symbol with jQuery

What I m trying to do, is wrap text into div inside ll tag. It wouldn t be a problem, but I need to wrap text that appears particularly after "-" (minus) including "minus" itself. This is my html: &...

热门标签