Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax调用后Yii自动完成小部件不工作_Javascript_Php_Ajax_Yii_Jquery Autocomplete - Fatal编程技术网

Javascript ajax调用后Yii自动完成小部件不工作

Javascript ajax调用后Yii自动完成小部件不工作,javascript,php,ajax,yii,jquery-autocomplete,Javascript,Php,Ajax,Yii,Jquery Autocomplete,我在我的视图中包含了一个autocomplete小部件,它最初(第一页加载)运行良好,我在主页中调用ajax来更新CListView,这就是我的autocomplete不显示完成的地方(输入框在那里,但当用户输入时,没有加载建议)…我看到很多关于使用renderPartial和ajax调用的问题都不起作用…有好的解决方案的人或者请推荐我 这是ajaxcall在同一页面上刷新的我的主视图 <div id="top" class="row-fluid" style="margin:0 3

我在我的视图中包含了一个autocomplete小部件,它最初(第一页加载)运行良好,我在主页中调用ajax来更新CListView,这就是我的autocomplete不显示完成的地方(输入框在那里,但当用户输入时,没有加载建议)…我看到很多关于使用renderPartial和ajax调用的问题都不起作用…有好的解决方案的人或者请推荐我

这是ajaxcall在同一页面上刷新的我的主视图

   <div id="top" class="row-fluid" style="margin:0 30 auto 30; ;width:100%;">
    <?php 

    ?>
     <div id="messages"   style="width:35%!important;float:left;margin-left:100px;margin-  right:20px!important;position:relative; overflow: hidden;">
    <?php 

    $this->renderPartial('ajaxindex',array('dataProvider'=>$dataProvider),false,true);
    ?>

    <!--end of portlet"-->
    </div>
    <!--end of messages-->

    <div  id="nav-panel" class="portlet" style="float:left!important;
    width:40%!important;border:1px;box-shadow: 10px 10px 5px #888888;" > 
    <div class="panel panel-success  portlet-decoration">

      <!-- Default panel contents -->
      <div class="panel-heading">
    Filtering Panel >> Rwanda
    </div>

    </div>
    <table class="table   table-condensed">
    <tr>
    <th>Province</th>
    <th>Critical</th>
    <th>Attention</th>
    <th>Normal</th>
    <th>Nothing</th>
    <th>error</th>
    <th>count</th>


    </tr>
    <?php
    $i=1;

    $countNothing=0;
    $countNormal=0;
    $countAttention=0;
    $countCritical=0;
    $countError=0;
    $countAll=0;

    foreach($messagesByProvinces as $messagesByProvince){
    $province=Province::Model()->findByPk($i);
    $provinceParams=null;
    $messageParams=null;
    $critical=0;
    $attention=0;
    $normal=0;
    $nothing=0;
    $error=0;
    $count=count($messagesByProvince);
    foreach($messagesByProvince as $message){
        $countAll++;

        if($message->indice==0){ 
            $nothing++;
            $countNothing++;
        }
        elseif($message->indice==1){
            $normal++; 
            $countNormal++;
        }
        elseif($message->indice==2){
            $attention++;
            $countAttention++;
        }
        elseif($message->indice==3){
            $critical++;
            $countCritical++;
        } 
        else   {
            $error++; 
            $countError++;
            }
    }


        if($filter!==null){
        $provinceParams=array('message/getProvincereport','id'=>$province->id,'start_date'=>$filter['start_date'],'end_date'=>$filter['end_date']);
        $messageParams=array('message/LoadMessages','province_id'=>$province->id,'start_date'=>$filter['start_date'],'end_date'=>$filter['end_date']);

        }
        else {
        $provinceParams=array('message/getProvincereport','id'=>$province->id);
        $messageParams=array('message/LoadMessages','province_id'=>$province->id);
        }



    echo "<tr><td>".CHtml::link($province->name,$provinceParams)."</td>

        <td><span class='badge badge-important'>".CHtml::ajaxLink($critical,$this->associate('indice',3,$messageParams),array('update'=>'#messages','success'=>'js:function(data){ 
        var $response=$(data);
        var newData=$response.find(".container-fluid").html();
        $("#messages").html(newData);
        } '))."</span></td>";

您应该在ajax调用后应用javascript的后处理,否则某些javascript函数将无法工作

渲染调用应该是这样的

$this->renderPartial('ajaxindex',array('dataProvider'=>$dataProvider),false,true); 
有关更多信息,请参阅本页


如果仅更新div,还应使用renderPartial,render也将调用布局文件。

我这样做了,但没有任何更改…我这样做了$this->renderPartial('ajaxindex',array('dataProvider'=>$dataProvider'),false,true);和$this->renderPartial('ajaxindex',array('dataProvider'=>$dataProvider),true,true);。。未做任何更改第一个选项如果设置为true,则将echo打印输出而不是呈现输出,第二个选项将处理向Yii注册的脚本,包括内部脚本。我曾多次遇到第三方脚本的问题,这种情况经常发生,因为在ajax调用后没有加载脚本脏破解解决方案是在jquery中使用ajaxComplete事件并再次加载Autocomplete脚本文件,同时检查控制台输出是否有任何javascript错误,如果在ajax调用之前或之后出现错误,脚本将停止working@Manquer...thanks很多..第一个参数让我困惑..但是如果我把它设置为真..除了将第二个参数设置为真..我什么都得不到..你有没有做过任何破解!
      <?php


     $indiceDisplay='Error'; 
     $label="label-default";

      if($data->indice==0){
    $indiceDisplay="Nothing";
    $label="label-info";

      }
      elseif($data->indice==1){
        $indiceDisplay="Normal";
    $label="label-success"; 
         }
      elseif($data->indice==2){
        $indiceDisplay="Attention";
    $label="label-warning";
        }
     elseif($data->indice==3){
    $indiceDisplay="Critical";
    $label="label-important";
        }
       else{
         $indiceDisplay="Error"; 
     $label="label-default";

        }

     echo "<tr class='view' >";
      ?>
     <td>

     <?php 
     echo CHtml::encode(User::Model()->findByPK($data->user_id)->names);echo "<br/></br>";
    ?>

    </td>
     <td>
     <?php 
     echo "<b>";
       echo CHtml::encode(  date_format(new DateTime($data->date), 'g:ia \o\n l jS F Y'));?>
      <?php 
        echo "&nbsp;";
        echo "&nbsp;";
    $linkText="<span class='label ".$label." '> ".$indiceDisplay." </span>";
    echo CHtml::link($linkText,array('message/index','indice'=>$data->indice));
    echo"</br>";
       ?>
     </b>
      </br>

     <?php echo CHtml::encode($data->content); ?>
     <br />



    <?php

        echo " <b>Location :</b> &nbsp; ".CHtml::link(Province::Model()->findByPk($data-  >province_id)->name,array('message/index','province_id'=>$data->province_id))."   ".Chtml::link(District::Model()->findByPk($data->district_id)- >name,array('message/index','district_id'=>$data->district_id))."    ".CHtml::link(Sector::Model()->findByPk($data->sector_id)-  >name,array('message/index','sector_id'=>$data->sector_id))."  ".CHtml::link(Cell::Model()-  >findByPk($data->cell_id)->name,array('message/index','cell_id'=>$data->cell_id))." ";


     ?>
       <div id="results-<?echo $data->id;?>">
    </div>


     <?php  echo "<div id='message-body-".$data->id."' style='font-size:12px;display:none;'>";?>

         <div class="input-append">
                <span>Add Category</span> 
                <?php $this->widget('CAutoComplete', array(
                        'model'=>$data,
                        'attribute'=>'category',
                        'url'=>array('message/suggestCategory'),
                        'multiple'=>true,
                        'htmlOptions'=>array('style'=>'height:11px;font-weight:    bold;','maxlength'=>255,'value'=>$data->category,'id'=>'category-'.$data->id,))); ?>

     <?php echo CHtml::ajaxSubmitButton('Save',$this-  >createUrl('message/categorize',array('id'=>$data->id,'category'=>'js:function(){return     $("#category-'.$data->id.'").val();}')),
                 array(
                     'type'=>'post',
                     'data'=>array('category'=>'js:function(){return $("#category-'.$data->id.'").val();}'),
                     'success'=>'function(data) {
                        if(data.status=="success"){
                         $("#results-'.$data->id.'").html(data);
                         $("#message-body-'.$data->id.'").style.display="none";

                        }
                         else{
                         $("#results-'.$data->id.'").html(data);
                         document.getElementById("message-body-'.$data->id.'").style.display="none";
                        }       
                    }',
                      ),array('id'=>'mybtn-'.$data->id,'class'=>'btn btn-small btn- primary','style'=>'height:21px')); 
    ?>
    </div>
    </div>
    </td>
    <td>
    <a class="btn btn-small" onclick="showInput(<?php echo $data->id;?>);"><i class="icon icon-   edit"></i>
   </a>
   </td>
   </tr>
public function actionLoadmessages()
  { $criteria=$this->getCriteria();
    if(isset($_REQUEST['indice'])){
        $criteria->addCondition('indice=:ind');
        $criteria->params['ind']=$_REQUEST['indice'];   
    }
    $dataProvider=new CActiveDataProvider('Message',array('criteria'=>$criteria)); 
    $this->layout=null;

 $this->render('ajaxindex',array('dataProvider'=>$dataProvider)); 
}
$this->renderPartial('ajaxindex',array('dataProvider'=>$dataProvider),false,true);