2015-05-19 204 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

路由中的控制器和操作名稱應該是小寫。