2017-01-07 16 views
0

この質問はこのサイトの多くの場合に尋ねられています。しかし、まだ、私は私の問題を解決するための正解を持っていません。Ajax onchangeコンボボックスが動作しない

私のコンボボックスとテキストエリアにajax関数を作りたいと思っています。したがって、コンボボックスでオプションを選択すると、コンボボックスの選択された値に応じて、テキストエリア内のテキストが変更されます。


更新:私のtextareaコード

これは私のコンボボックスとtextareコードです:これは私のjavascript関数とAjaxは

<select class="form-control" name="option_template" id="template" onchange="get_template(this.value);"> 
    <option value="" selected="" disabled=""> -- Pilih Template --</option> 
<?php foreach ($template as $template){ 
?> 
    <option value="<?php echo $template['id'];?>"><?php echo $template['nama'];?></option> 
<?php       } 
?> 
</select> 
<div class="col-md-8 col-sm-8 col-xs-12"> 
    <textarea id="template-content"></textarea> 
</div> 

ある

<script type="text/javascript"> 
     // alert("hai"); 
     function get_template(id){ 
     alert(id); 
     $.ajax({ 
      method:"POST", 
      url:'<?php echo base_url();?>broadcast/ajax_template', 
      data:{option:id}, 
      succes:function(msg){ 
      alert(msg); 
      $('#template-content').val(msg); 
      } 

     }); 

     } 


    </script> 

と最後が、これは私が上記のコードを実行すると、AJAX

public function ajax_template(){ 
    $id=$this->input->post('option'); 
    $q=$this->M_template->get_template($id)->row_array(); 
    echo "Test output".$q['content']; 
} 

からの投稿を取得する私のPHP関数、警告(ID)です。のjavacript get_template()関数の構文が機能しているので、オプションを選択するたびにオプション値を取得します。しかし問題は、私はajaxの投稿から出力データを得ることができないということです。誰かがこれで私を助けてくれますか?私は、これは多分基本的な知識である知っているが、私はこの問題を解決するために時間を費やしてきた、ありがとうございました:)

+0

あなたはアヤックスが右、PHPの関数を呼び出しますが値を返すされていない意味を? –

+0

発生したエラーを教えてください。 – Kamlesh

+0

@DeepakDholiyan yap、その値を返していない – apripuppey

答えて

-1

をあなたは、AJAXを使用せずに機能

public function ajax_template(){ 
    $id = $this->input->post('option'); 
    $q=$this->M_template->get_template($id)->row_array(); 
    echo "Test output".$q['content']; 
    exit; 
} 

を呼び出すと、それは何も表示されます確認してもらえますかない。変数$idに静的な値を渡してください。

+0

theresクエリに間違っている、 dbから正しい値をエコーし​​ます。 – apripuppey

0

これは奇妙で、私の前のコードがうまくいかない理由はわかりません。しかし、これを行うには、change()関数をselect構文に使用し、ポストの代わりにgetメソッドを使用することで、これを行う新しい方法が見つかりました。

これは私のJavaScriptとAJAX私は私の選択構文 ののonchange属性を削除し、ポストからIDを取得するためにPHPの機能を変更

$("#template").change(function() { 
     var e = document.getElementById("template"); 
     var id = e.options[e.selectedIndex].value; 

     $.ajax({ 
      url: '<?php echo base_url();?>Broadcast/ajax_template?option='+id, 
      success: function(msg){ 
      $('#template-content').val(msg); 
     }}); 
    }); 

機能に取得され

$id=$this->input->get('option'); 
+0

デフォルトのメソッドはgetです。 –

0

ajax_template()メソッドを変更してください

M_templateからの応答が配列として取得されています。あなたはそのような配列をエコーすることはできません。 echo json_encode($ arrayname)を使用します。あなたの場合echo json_encode($ q ['content']);

とAjaxであなたがデータ型に言及していることを確認してください:「JSON」

関連する問題