2015-05-19 144 views
1

我想在yii2中使用ajax(PHP框架) 我使用下面的代码,但它不起作用。yii2 Ajax请求错误404

我的视图文件(PHP):

<script> 
var url1='<?php echo Url::toRoute('Agehi/Ajaxshahr'); ?>'; 
</script> 
<?php 
$script= <<<JS 
    function selectshahr() 
    { 
     var ost = $("#ostan").val(); 
     $.ajax(
     { 
      type: "post", 
      url: url1, 
      data: ost, 
      cache: false, 
      success: function(data) 
      { 
       alert(data); 
      } 
     }); 

    } 
JS; 
$this->registerJs($script,View::POS_BEGIN); 

$form = ActiveForm::begin([ 
    'id' => 'login-form', 
    'options' => ['class' => 'form-horizontal','enctype'=>'multipart/form-data'], 
]); 
echo $form->errorSummary($model,['header'=>'لطفا خطاهای زیر را برطرف نمایید','class'=>'']); 
echo \vova07\imperavi\Widget::widget([ 
    'selector' => '#content','name'=>'content', 
    'settings' => [ 
     'lang' => 'fa', 
     'minHeight' => 200, 
     'plugins' => [ 
      'clips', 
      'fullscreen' 
     ] 
    ] 
]); 
?> 
<?= Html::label('استان','ostan',array()) ?> 
<?= Html::dropDownList('ostan', null, 
    ArrayHelper::map($ostan, 'id', 'name'),array('class'=>'form-control','onchange'=>'selectshahr()','id'=>'ostan')) ?> 
<?= Html::label('شهرستان/شهر','shahr',array()) ?> 
<?= Html::dropDownList('shahr', null, 
    array(),array('class'=>'form-control')) ?> 

,并在我的控制器:

class AgehiController extends \yii\web\Controller 
{ 
    public function actionAjaxshahr($ostan) 
    { 
     $data = Shahr::findAll('condition', 'osid=' . $_POST['data']); 
     if(yii::$app->request->isAjax()) 
     { 
      return $this->renderPartial('_Ajax_shahr', array('data' => $model)); 
     } 
     return $this->renderPartial('_Ajax_shahr', array('data' => $model)); 

    } 

} 

一切似乎都不错,但它并没有任何要求 回应我的浏览器开发者工具检查它将AJAX视为404错误

+0

我复制阿贾克斯地址和网址导航栏粘贴返回404错误和回声:”找不到网页,而Web服务器正在处理您的请求时 上述错误 ,请联系我们,如果你认为这一点。是服务器错误。谢谢你“ –

+0

尝试var url1='';

回答

0

路由中的控制器和操作名称应该是小写。