2016-09-19 1 views
0

korrigiert Ich habe den folgenden Link zu meinem Ajax-Aufruf in yii2 zu machen:yii Ajax-Aufruf wird nicht Aktion

echo Html::a('Load more','ajaxShowMoreProducts', [ 
    'onclick'=>"console.log('Load more'); 
     $.ajax({ 
      type:'POST', 
      cache: false, 
      url: 'ajaxShowMoreProducts', 
      success: function(response) { 
       console.log('suc'); 
      } 
     });return false;", 
]);  

Dann habe ich eine Aktion in meinem SiteController:

/** 
* @return string|\yii\web\Response 
*/ 
public function actionAjaxShowMoreProducts() { 
    var_dump('in');die; 
    $params = []; 

    $productModel = new Product(); 
    $params['products'] = $productModel->getAll(); 

    $this->renderPartial('partialProductItem', $params); 
} 

jedoch, wenn Ich klicke auf den Link, die richtige Controller-Aktion scheint nicht aufgerufen zu werden. Es ruft immer noch site/index auf. Irgendwelche Ideen, was ich tun muss, damit das funktioniert? Habe ich irgendeine Art von Annotation vergessen oder muss ich meine neue Aktion irgendwo definieren?

Wenn ich in der Konsole sehen, sieht es richtig: Anforderungs-URL: http://localhost:8080/site/ajaxShowMoreProducts

Antwort

2

In yii2 Sie die richtige Schreibweise für Action-URL verwenden soll (in URL aufrufen si nicht verwendet werden, um die camelNotation aber die Worte getrennt durch - (minus)

echo Html::a('Load more','ajax-show-more-products', [ 

und in ajax-URL zu

url: 'ajax-show-more-products', 

oder versuchen URL Helper

use yii\helpers\Url; 


.... 

     echo Html::a('Load more', Url::to(['/site/ajax-show-more-products']), [ 
     'onclick'=>"console.log('Load more'); 
      $.ajax({ 
       type:'POST', 
       cache: false, 
       url: '" . Url::to(['/site/ajax-show-more-products']) . "', 
       success: function(response) { 
        console.log('suc'); 
       } 
      });return false;", 
    ]); 
+0

Ich habe das versucht, aber es geht immer noch zu indizieren, obwohl die URL lautet: Anforderungs-URL: http: // localhost: 8080/site/Ajax-show-mehr-Produkte – user1009698

+0

ich aktualisieren die Antwort. – scaisEdge

+0

yep iv getan, lass mich dir es zeigen: http://pastebin.com/ABzXv2AP – user1009698

Verwandte Themen