php - 如何通过 jQuery+Codeigniter 获取值并显示在输入字段中?

标签 php jquery ajax codeigniter

我在从服务器接收值并在输入中显示值时遇到了一些问题。

有时,如果我想在页面中显示值,我会使用 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/

相关文章:

PHP 表单不会发布

javascript - 从react调用javascript方法

javascript - 使用 AJAX 打开 Bootstrap 选项卡

php - HTML 获取 URL 参数

java - Google App Engine 上的 Quercus : Class not loading

php - Laravel 自定义助手 - 未定义索引 SERVER_NAME

jQuery:.each 函数的问题

javascript - 更改窗口位置 Jquery

php - undefined variable : row

javascript - 在点击事件上存储值