2013-11-25 43 views
4

我收到了一些關於從服務器接收值的問題,並在輸入中顯示值。如何通過jQuery + Codeigniter獲取價值並在輸入字段中顯示?

有時,如果我想在頁面中顯示值,我將使用POST方法,然後在控制器和模型中設置input'ID,並在要顯示的頁面中使用foreach(),因此工作已完成。

但是,如果我想在輸入字段中顯示值,我需要爲它做些什麼?

我爲此寫了一些代碼,並嘗試使用AJAX接收並在輸入中顯示,它不工作,大家可以幫我解決這個問題,請.......Σ(¯□);

我嘗試創建一個新的模型和一個新的頁面,有一個非常簡單的形式中,代碼如下:

觀點:kungfu.php

<div style="width:250px;float:left;"> 
<form id="pr_form" action="<?php echo site_url();?>/static_data/kungfu_act" method="post"> 

NUM:<input id="num" name="num" type="text" class="field_set"><br> 
NAME:<input id="name" name="name" type="text" class="field_set"><br> 
LOCAL:<input id="local" name="local" type="text" class="field_set"><br> 
KUNGFU:<input id="kungfu" name="kungfu" type="text" class="field_set"><br> 
</div> 

<div style="float:left;"> 
<span id="loading" style="display:none">Loading!!</span><br> 
<span id="complete" style="display:none">Complete!!</span> 
</div> 

<div style="clear:both;height:50px;padding-top:10px"> 
<input id="query" name="query" class="btn" type="button" value="QUERY"> 
</div> 

</form> 
</div> 

模型: pr_model.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Pr_model extends CI_Model { 

    function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper('form'); 
     $this->load->helper('html'); 
     $this->load->database(); 
    } 

    function pr_query() 
    { 

     $query=$this->db->get("kungfu_table"); 
     return $query->result(); 
    } 
} 

控制器:static_data.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Static_data extends CI_Controller { 

    public function kungfu() 
    { 
     $this->load->view('kungfu'); 
    } 

    public function kungfu_query() 
    { 
     $this->load->model("pr_model"); 
     $data = array(
      "kungfu" =>$this->pr_model->pr_query() 
     ); 
     echo json_encode($data); 
    } 
} 

如果我要顯示在正常網頁的價值,我會用foreach(),但我不知道如何輸入顯示,我試着使用getjson(),但沒有工作。有人可以教我嗎?

// 2013年11月30日重新編輯

親愛的蘇爾曼:

我試着寫阿賈克斯()的一些代碼,但我仍然有問題,其它部分是一樣的,但控制器必須是變化:

控制器:static_data.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Static_data extends CI_Controller { 

    public function kungfu() 
    { 
     $this->load->view('kungfu'); 
    } 

    public function kungfu_maxquery() 
    { 
     $this->load->model("pr_model"); 
     $data = $this->pr_model->pr_maxquery(); 

     $max=json_encode($data); 
     echo $max; 


    } 
} 

型號:pr_model.php

function pr_maxquery() 
    { 
     $this->db->select_max("num"); 
     $maxquery=$this->db->get("kungfu_table"); 
     return $maxquery->result(); 
    } 

我嘗試編輯.ajax()一個js文件,但Chrome的控制檯告訴我,「未捕獲的ReferenceError:MAXNUM沒有定義」,你能告訴我怎麼編輯它?

$("#newone").click(function(){ 
     $("#num").val(function(){ 
      max_response = $.ajax({ 
       type:"POST", 
       url:"<?php echo base_url()?>/static_data/kungfu_maxquery", 
       cache:false, 
       data: "num:"+maxnum 
      }); 
      max_response.done(function(){     
       return maxnum; 
      }); 
     }); 
    }); 
+0

你會在「view:kungfu.php」文件中打印數據,並在你的問題中追加輸出嗎? – Suleman

+0

您的模型數據是否在「查看」中可用? – Suleman

回答

0

確保您model數據是view可用,如果可用,則需要更改inpup領域:

NUM:<input id="num" value="<?php echo $data_for_first_input_filed; ?>" name="num" type="text" class="field_set"><br> 
NAME:<input id="name" value="<?php echo $data_for_second_input_filed; ?>" name="name" type="text" class="field_set"><br> 
LOCAL:<input id="local" value="<?php echo $data_for_third_input_filed; ?>" name="local" type="text" class="field_set"><br> 
KUNGFU:<input id="kungfu" value="<?php echo $data_for_forth_input_filed; ?>" name="kungfu" type="text" class="field_set"><br> 

如果你想通過AJAX追加數據,那麼這裏就是示例代碼:

$("#newone").click(function(){ 

$.ajax({ 
    url: "<?php echo base_url()?>/static_data/kungfu_maxquery", 
    type: "POST", 
    data: { 
     'num':maxnum 
    }, 
    cache: false, 

    success: function(data) { 
     console.log(data); 
     $("#num").val(data['filed_name_returned']); 
     $("#name").val(data['filed_name_returned']); 
     $("#local").val(data['filed_name_returned']); 
     $("#kungfu").val(data['filed_name_returned']); 
    } 
}); 
}); 

AJAX請求不是一個便宜的調用,我們可以在一個請求中獲取所有數據,並且可以在可用數據中設置成功功能。我不知道你的表格結構是爲什麼我附加了一行額外的console.log(data);,它將在控制檯中顯示你返回的數據。

+0

當然...這是一個非常正確的答案,但你還可以教我關於「如何通過jQuery ajax()顯示」? – petercilee

+0

在你的ajax成功函數中添加console.log([返回你想要在輸入文件中顯示的數據])。並在您的問題中追加打印的數據。 – Suleman

+0

謝謝你的回答,我重新編輯這個問題,請幫我解決它,非常感謝你:) – petercilee

相關問題