2016-06-26 12 views
0

Ich versuche, Daten in eine Datenbanktabelle mit AJAX in yii2 einzufügen. aber ich weiß nicht wirklich, wie ich das machen soll. ich möchte die post-daten an den controller senden. das problem scheint vom ajax-skript zu kommen. es soll mir den wert der rate zeigen, die 'oben' ist. stattdessen zeigt mir der Alarm.Daten mit AJAX in yii2 einfügen?

das ist meine Ansicht Klasse

<?php 

use yii\widgets\ListView; 
use yii\data\ArrayDataProvider; 
use app\models\MyProfile; 
use app\models\LikeDiscussion; 
use yii\widgets\ActiveForm; 
use common\models\Topic; 
use common\models\Thumbs; 
use common\models\Comment; 
use common\models\Candidate; 
use yii\widgets\Pjax; 
use yii\helpers\Html; 
use frontend\assets\AppAsset; 

$this->title = 'My Yii Application'; 
?> 
<button id="save" name="save" class="readmore">up</button> 

das ist meine js-Datei.

var fac= document.getElementById("save"); 
    fac.onclick = function fun(){ 
     $.ajax({ 
      url: '/index.php?r=site%2Fblog', 
      type: 'post', 
      data:{"rate": 'up'}, 
      success:function(data){ 
       alert(data); 
      } 
     }); 
    }; 

dies ist mein contoller Klasse

<?php 

    public function actionBlog(){ 
     $thumbs= new Thumbs(); 
     if(isset($_POST['rate'])){ 
      $thumbs->user=Yii::$app->user->identity->email; 
      $thumbs->topic_id = 1; 
      $thumbs->rate = $_POST['rate']; 
      $thumbs->load($_POST); 
      $thumbs->save(); 
     } 

     return $this->render('blog'); 
    } 

das, was ich

bekommen, wie die Ausschreibung ist

enter image description here

Antwort

0

Versuchen Sie folgendes:

<?php 

    public function actionBlog(){ 
     $thumbs= new Thumbs(); 
     if(isset($_POST['rate'])){ 
      $thumbs->user=Yii::$app->user->identity->email; 
      $thumbs->topic_id = 1; 
      $thumbs->rate = $_POST['rate']; 
      $thumbs->load($_POST); 
      $thumbs->save(); 

      if(Yii::$app->request->isAjax) 
       return $thumbs->rate; 
     } 

     return $this->render('blog'); 
    } 
+0

Noch nicht funktioniert es gibt mir den gleichen Fehler – arinze

+0

Können Sie Ihren 'runtime/logs/app.log' anzeigen und den Netzwerk-Tab in der Chrome-Konsole anzeigen? – Vitaly

+0

Kennen Sie anders, ich möchte nur Daumen nach oben und Daumen nach unten. Und ich möchte Ajax verwenden, weil ich nicht möchte, dass die Schaltflächen in einem Formular sein – arinze