2016-03-26 8 views
0

私のモジュールでは、自動完成と同様の機能が必要です。 私が必要とするのは、名前を入力するたびにテーブルを作成することです。たとえば、Johnと入力すると、テーブルには、電子メールID、専門化、住所などの他の属性を持つデータベース内のすべてのJohnが表示されます。次に、特定の「john」を選択すると(名前/チェックをクリックするとボックス/他の方法)、彼の情報は私のフォームに自動的に記入されるはずです。 私はすべてのジョンの詳細を抽出することができます(私はアラートボックスに印刷しましたが)私が直面している2つの問題は次のとおりです。 1.) 'John'に対応するテーブルを作成できません 2.)私は、必要な行がユーザーによってクリックされたときにデータをフォームに渡す方法を知らない。cakephpでの動的テーブルの作成

また、データを抽出すると、テーブルの最後のエントリのデータ(last '' john '')のみが表示されます。すなわち最後の「ジョン」だけが保存されています。 forループはすべて '' john ''を表示します。

参照用にコントローラとビューコードをペーストしています。

何かお勧めします。

//Controller: 
public function getmasterdata($id=NULL) 
{ 
    $this->layout = 'ajax'; 
    $this->autoRender = false; 

    $q=$this->request->data['nns']; 
    $details=array(); 
    $this->loadModel('Approved_panel'); 
    $conditions = 'Approved_panel.name LIKE "%'.$q.'%"'; 

    $countt=$this->Approved_panel->find('count',array('conditions'=>$conditions)); 
    $masterdata=$this->Approved_panel->find('all',array('conditions'=>$conditions)); 
    //print_r ($masterdata); 

    foreach($masterdata as $m) 
    { 
     $details=$m['Approved_panel']; 
     print_r($details); 

    } 
    //print_r($details); 
    $data=''; 
    foreach($details as $key=>$value) 
    { 
     $data.=$key.'//'.$value.'&&&'; 
    } 
    print_r($data); 
    //echo json_encode($details); 
    exit; 
} 

`

//View: 
$("#name"+lastChar).on('keyup',function() 
{ 
     $('#master_details').show(); 
     var namess=$('#name'+lastChar).val(); 
     //alert(namess); 
     $.ajax({ 
     cache: false, 
     dataType: "html", 
     type: "POST", 
     evalScripts: true, 
     url: '<?php echo   Router::url(array('controller'=>'Panels','action'=>'getmasterdata'));?>', 
     data: ({nns:namess}), 
     success: function(result){ 
       alert(result); 
       $('#detailss').val(result); 
      } 
     }); 
    }); 

`

//This is the div in which data should be displayed. These are the headers. I don’t know how to get data into this. 

<div id="master_details"> 
<h2 align="center">Previous Panel Member's Details</h2> 
<table> 
<thead> 
<tr> 
    <th> Name</th> 
    <th> Designation</th> 
    <th> Specialization</th> 
    <th> University</th> 
    <th> College</th> 
    <th> Address</th> 
    <th> Phone</th> 
    <th> Email</th> 
    <th> Papercode</th> 
    <th> Action</th> 
    </tr> 
</thead> 
</table> 
</div> 

答えて

0

$ qは何 エコー$ qを返しているかどうかを確認してください。

または実行PR(の$ this - >要求 - >データ)//おそらく、あなたの条件文が書かれている方法である配列データ

+0

データを返します。データは警告ボックスに印刷されています。問題は、最後のデータだけが$ details配列に存在することです。 – Nikita

0

の印刷を取得します。 echo $ sqlは何を表していますか? phpmyadminで文を実行することもできます。これを試してください:

$masterdata=$this->Approved_panel->find('all', ['conditions'=>[Approved_panel.name LIKE' => "%'.$q.'%"]]; 
関連する問題