我遇到了一些关于从服务器接收值的问题,并在输入中显示了该值。
有时,如果我想在页面中显示值,我将使用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重新编辑
亲爱的苏尔曼:
我尝试写一些关于.ajax()的代码,但我仍然遇到问题,另一部分是相同的,但控制器已经改变了:
控制器: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 :(得分: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);
,它将在控制台中显示你返回的数据。