2016-10-16 3 views
1

Wenn ich auf meinen Link klicke, würde ich, wenn ich auf den Link klicke, einen anderen div Inhalt neu laden und wenn ich den vollen Link im Navigator hinterlasse, ist es nicht zugänglich.Ajax mit yii2 Controller

<a onclick="getConversation('id_div_2','<?= $id;?>','<?= $user1['id'];?>','admin/ajaxMessage','<?= Yii::$app->getUrlManager()->getBaseUrl();?>')" 
      class="list-group-item"> 

Ich habe folgende Fehlermeldung:

enter image description here

Das ist mein Controller Skript

public function actionIndex() 
    { 

     if(isset($_POST['idCurrentUser'])){ 

      $idCurrentUser = $_POST['idCurrentUser']; 
      $idUser = $_POST['idUser']; 

      $all_conversations = Yii::$app->db->createCommand(" SELECT * FROM message WHERE sender_id=".$idCurrentUser." OR receiver_id=".$idCurrentUser. " AND last_message=True")->queryAll(); 

      $user1= Yii::$app->db->createCommand(" SELECT * FROM user WHERE id=".$idUser)->queryOne(); 

      $one_conversation = Yii::$app->db->createCommand(" SELECT * FROM message WHERE (sender_id=".$idCurrentUser." AND receiver_id=".$idUser.") OR (sender_id=".$idUser." AND receiver_id=".$idCurrentUser.")")->queryAll(); 

      ?> 
      <div class="panel-heading"> 
       <div class="media"> 
        <a href="mail-compose.html" class="btn btn-danger pull-right rounded"><i class="fa fa-share"></i></a> 
        <a class="pull-left" href="#"> 
         <img src="http://img.djavaui.com/?create=50x50,144966?f=ffffff" alt="Rebecca Cabean" class="img-circle"/> 
        </a> 
        <?php $contact1= Yii::$app->db->createCommand(" SELECT * FROM user WHERE id=".$idCurrentUser)->queryOne(); ?> 
        <?php $contact2 = Yii::$app->db->createCommand(" SELECT * FROM user WHERE id=".$idUser)->queryOne(); ?> 
        <?php $one_conversation1 = Yii::$app->db->createCommand(" SELECT * FROM message WHERE (sender_id=".$idCurrentUser." AND receiver_id=".$idUser.") OR (sender_id=".$idUser." AND receiver_id=".$idCurrentUser.")")->queryOne(); ?> 
        <?php $msg1= $one_conversation1; ?> 
        <div class="media-body"> 
        <?php if ($msg1['sender_id']==$idCurrentUser) { ?><h4 class="media-heading"><?= $contact2['username']; ?> <small>(<?= $contact2['fonction']; ?>)</small></h4><?php } ?> 
        <?php if ($msg1['receiver_id']==$idCurrentUser) { ?><h4 class="media-heading"><?= $contact2['username']; ?> <small>(<?= $contact2['fonction']; ?>)</small></h4> <?php } ?> 
         <small>Thursday 5th July 2014-via Intercom</small> 
        </div> 
       </div> 
      </div><!-- /.panel-heading --> 
      <div class="panel-body"> 
      <?php foreach ($one_conversation as $key => $msg) : ?> 
       <p> 
         <?= $msg['text'] ?> 
       </p> 
       <hr/> 
      <?php endforeach; ?> 
      </div><!-- /.panel-body --> 

      <?php 
     return false; 
     } 

    } 

Und Funktion sieht meine Ajax ist wie

function getConversation(IDdiv,idCurrentUser,idUser,ctrl,url){ 

    var idCurrentUser = idCurrentUser; 
    var idUser = idUser; 

    var dataForm = {idCurrentUser: idCurrentUser,idUser: idUser}; 
    $.ajax({ 
     type: 'POST', 
     url:''+url+'/index.php?r='+ctrl+'/index', 
     data:dataForm, 
     success: function (response) { 
      document.getElementById(IDdiv).innerHTML=response; 
     } 
    }); 
} 
+1

Fehler 500 ist ein Server-Fehler .. Sie sollten debuggen zB: xdebug Sie Controller-Aktion für suchen wo ist der Fehler .. – scaisEdge

Antwort

0

Ich denke, das Problem in type= 'POST', Sie versuchen, in a Tag Onclick zu verwenden und so sollten Sie GET Methode in Art ajax wie das verwenden:

function getConversation(IDdiv,idCurrentUser,idUser,ctrl,url){ 

var CurrentUser = idCurrentUser; 
var User = idUser; 

$.ajax({ 
    type: 'GET', 
    url:''+url+'/index.php?r='+ctrl+'/index', 
    data:'CurrentUser='+CurrentUser+'&User='+User, 
    success: function (response) { 
     document.getElementById(IDdiv).innerHTML=response; 
    } 
    }); 
} 
+0

Es funktioniert dank – 1616