我在从服务器接收值并在输入中显示值时遇到了一些问题。
有时,如果我想在页面中显示值,我会使用 POST 方法,然后在 Controller 和模型中设置输入'ID,并在页面中使用 foreach()
显示 ,因此工作已完成。
但是,如果我想在输入字段中显示值,我需要怎么做?
我为此写了一些代码并尝试使用AJAX接收并在输入中显示,它不起作用,请大家帮我解决这个问题,请...... Σ( ̄□ ̄;)
我尝试为它创建一个新模型和一个新页面,有一个非常简单的表单,代码如下:
view: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();
}
}
controller: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 重新编辑
亲爱的苏尔曼:
我尝试编写一些关于 .ajax() 的代码,但我仍然遇到问题,其他部分是相同的,但 Controller 已更改:
controller: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 控制台告诉我“Uncaught ReferenceError: maxnum is not defined”,你能告诉我如何编辑它吗?
$("#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;
});
});
});
最佳答案
确保您的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
请求并不便宜,我们可以在一个请求中获取所有数据,并可以在 success 函数中设置可用数据。我不知道你的表结构,这就是为什么我附加了一行额外的 console.log(data);
这将在控制台中显示你返回的数据。
关于php - 如何通过 jQuery+Codeigniter 获取值并显示在输入字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185184/