2016-07-31 8 views
1
$sql="SELECT * FROM seat WHERE type=$type AND seat=$seat";  
$getseats=Yii::$app->db->createCommand($sql)->queryAll();  
echo json_encode(array('status' => TRUE, 'getseats'=>$getseats)); die; 

das gibt i $ getseats Werte in array.so dies tun könnte:mit Ajax jquery mit ojekte

success: function(response){ 
      var res=$.parseJSON(response); 
      if(res.status == true) 
      { 
       var seat=''; 
       for(var i=0; i<res.getseats.length; i++) 
       {      
        seat += '<option value='+res.getseats[i].seat_id+'>'+res.getseats[i].seat+'</option>'; 
        $('#seats').html(seat); 
       } 
      } 

aber was, wenn ich aktiv Rekord benutzen?

$getseats=Seat::where(['type'=$type])->where(['seat'=>$seat])->all();  
echo json_encode(array('status' => TRUE, 'getseats'=>$getseats)); die; 

Antwort

1

Für Active sollten Sie (diese Rückkehr Modelle) verwenden

$getseats=Seat::Find()->where(['type'=$type, 'seat'=>$seat])->all(); 
echo json_encode(array('status' => TRUE, 'getseats'=>$getseats)); 
die; 

, wenn Sie das Ergebnis wie ein Array möchten, können Sie

$getseats=Seat::Find()->where(['type'=$type, 'seat'=>$seat])->asArray()->all(); 
+0

Ich meine die jquery Teil verwenden. – micky

+0

Was meinst du? der jquery-Teil sollte mit ActiveRecord oder createCommand identisch sein. In meiner Antwort habe ich den richtigen Weg angegeben, um die Daten mit activeRecord zu erhalten. Erklären Sie besser. – scaisEdge

+0

Ok. Ich wollte immer ActiveRecord verwenden. Ich denke, $ getseats gibt das Objekt und "res.getseats [i] .seat" wird fehlschlagen. – micky