2017-06-16 8 views
0

Hallo an alle! Bitte helfen Sie mir, das Problem zu lösen.

Ich habe einige htmlYii2 Ärger mit Ajax Anfrage

<ul class="filter_list filter_house_type"> 
     <li><input type="checkbox" id="check1" value="House" onclick="sendRequest();"><label for="check1"><?= Yii::t('app', 'House') ?></label></li> 
</ul> 

js

function sendRequest(){ 
    $.ajax({ 
     url: '/site/ajax', 
     type: 'POST', 
     data: { text: 'text' }, 
     success: function(data) { 
      alert(data); 
     } 
    }); 
} 

Controller-Aktion

public function actionAjax() 
{ 
    if(Yii::$app->request->post('text')){ 
     $test = 'Ajax request'; 
    } else { 
     $test = 'Some troubles!'; 
    } 
    return \yii\helpers\Json::encode($test); 
} 

Wenn ich auf das Kontrollkästchen klicken ich eine Seite mit „Som sehen e Probleme! " und die Konsole ist leer.
enter image description here Warum Renderseite? Wie kann ich eine Antwort in der Ajax-Funktion bekommen? Bitte, hilf!

+0

Das sieht so aus, als ob Sie diese '/ ajax'-URL im Browser eingegeben haben und deshalb sehen Sie, was da ist. Wenn Sie auf das Kontrollkästchen auf dieser HTML-Seite klicken, sollten Sie eine Warnung mit der 'Ajax-Anforderung 'sehen. – Bizley

+0

@Bizley Sag mir, wie kann ich das beheben? – Viskas

+0

Was meinst du? Was ist hier kaputt? – Bizley

Antwort

1

könnte sein, Ihnen einen Scheck über den Post benötigen ('text') zB:

public function actionAjax() 
    { 
     $post = Yii::$app->request->post() 
     if(isset($post('text')){ 
      $test = 'Ajax request'; 
     } else { 
      $test = 'Some troubles!'; 
     } 
     return \yii\helpers\Json::encode($test); 
    } 

und versuchen, mit der Methode POST anstelle von Typ

$.ajax({ 
    url: '/site/ajax', 
    method: 'POST', 
    data: { text: 'text' }, 
    success: function(data) { 
     alert(data); 
    } 

});

und nur für das Debuggen versucht Zweck

Verwendung Post statt Ajax differente Ansatz, .. Test anstelle von Text

$.post('/site/ajax' , {test:'test'}, 
    function (data) { 
     alert(data); 
}); 

.

+0

Danke für die Antwort, ich habe versucht, Ihren Code, aber es hat nicht geholfen – Viskas

+0

versuchen Sie var_dump ($ Beitrag ('Text')) bitte und lassen Sie mich wissen – scaisEdge

+0

Antwort mit einem kurzen Vorschlag aktualisiert – scaisEdge