簡體   English   中英

Ajax onchange組合框不起作用

[英]Ajax onchange combobox not working

我知道這個問題在本網站的許多其他情況下都曾被問過。 但是,我仍然沒有解決我問題的正確答案。

我想使我的組合框和文本區域的ajax函數。 因此,當我在組合框中選擇一個選項時,textarea中的文本將根據組合框的選定值而變化。


更新:我的textarea代碼

這是我的組合框和textare代碼:

<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>

這是我的javascript函數和ajax

  <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>

最后一個,這是我的php函數,它從ajax檢索帖子

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

當我運行上面的代碼時, alert(id); 在javascript get_template()函數語法中正常工作,因此每次選擇選項時我都會得到選項值。 但是問題是我無法從ajax的帖子中獲取輸出數據。 有人可以幫我嗎? 我知道這可能是基本知識,但是我已經花了數小時來解決這個問題,謝謝:)

這很奇怪,我不知道為什么我以前的代碼無法正常工作。 但是我發現了一種新方法,可以通過將change()函數用於select語法並使用get方法而不是post來實現。

這是我的javascript和ajax函數

  $("#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);
      }});
    });

我刪除了我選擇語法的onchange屬性,並更改了php函數以從發布 獲取 ID以獲得

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

更改您的ajax_template()方法

您正在從M_template作為數組獲得響應。 您不能像這樣回顯數組。 使用echo json_encode($ arrayname)。 在您的情況下echo json_encode($ q ['content']);

並確保在ajax中提到dataType:'json'

你能給我打電話嗎

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

不使用ajax並檢查它是否顯示任何內容。 請在$id變量上傳遞靜態值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM