【问题标题】:Dependent input text codeigniter依赖输入文本代码点火器
【发布时间】:2012-08-02 16:01:55
【问题描述】:

您好,我正在使用 codeigniter,我想制作相关输入文本,如下例所示:

我有三个字段 numberphone、Name、Society,我想在用户输入 numberphone 时自动填写 Name 和 Society:

这是我在Mysql中的表结构:

人(身份证、电话号码、姓名、社会)

S 形式如下:这是我的观点:

观点

<table>
            <tr>
               <td valign="top">Telephone<span style="color:red;">*</span></td>
               <td>
                 <input type="text" name="telephone" class="text" id="telephone"/>
                  <?php echo form_error('telephone'); ?>
               </td>
            </tr>
            <tr>
               <td valign="top">Usager<span style="color:red;">*</span></td>
               <td>
                  <input type="text" name="usager" class="text" id="usager" readonly="readonly">
                  <?php echo form_error('nbcas'); ?>
               </td>
            </tr>
            <tr>
               <td valign="top">society<span style="color:red;">*</span></td>
               <td>
                  <input type="text" name="society" class="text" id="society" readonly="readonly">
                  <?php echo form_error('nbcas'); ?>
               </td>
            </tr>

               <td><input type="submit" value="Enregistrer"/></td>
            </tr>

         </table>

我的控制器:

public function GetUsager()
{
    if($this->input->is_ajax_request())
    {

        $telephone = $this->input->post('phone');
        $data['row'] = $this->structure->GetUsagerId($telephone);



        header('Content-Type: application/json',TRUE);
        //echo(json_encode($this->structure->GetUsagerId($usager)));
       // echo json_encode($data['usager']);
        echo json_encode($data);
    }
}

和我的模特

function GetUsagerId ($telephone)
  {
     $this->db->select('name','society');
     $this->db->where('numberphone',$telephone);
     $query=$this->db->get('Person');



     if($query->num_rows() > 0) 
     {

         $row = $query->row();
         return $row;

     } 

}

视图中的jquery代码

$('#telephone').keyup(function() {
 var phone = $('#telephone').val();
 var baseurl = "<?= base_url(); ?>";
        $.ajax({
            type    : "POST",
            url     : baseurl+"index.php/main/GetUsager",
            dataType: 'json',
            data    : phone,
            success: function(data) {
                   $("#usager").append(data.row);

            }
        });

    });

什么都没发生。

【问题讨论】:

  • 当我输入 numberphone 值时,我无法自动填写姓名和社团字段。

标签: codeigniter text input types


【解决方案1】:

在您的 ajax 请求代码中:

        $.ajax({
        type    : "POST",
        url     : baseurl+"index.php/main/GetUsager",
        dataType: 'json',
        data    : phone,
        success: function(data) {
               $("#usager").append(data.row);

        }

您应该将$("#usager").append(data.row) 更改为$("#usager").val(data.row.name)

编辑:您还应该将data: phone 更改为data: "phone=" + phone

另外我认为您应该参考data.row.name 来阅读名称。我已从 data.row 更改为 data.row.name。检查您如何格式化 JSON 输出。

【讨论】:

  • 我添加了您的以下说明,但没有任何变化。
  • 你所说的意思是检查你如何格式化你的 JSON 输出。
  • 查询行对象类似于$row = {name: "foo", society: "bar"}。所以通过编码$data(它有$data['row'] = $row)你会得到一个像{row : {name: "foo", society: "bar"}}这样的javascript对象。要阅读名称,您应该像这样访问data.row.name
  • 你的成功函数被调用了吗?您是否尝试发出警报以确认它被调用?
  • 我将json农场更改为:$rows= $this->structure->GetUsagerId($telephone); $data = array('row'=>$rows); header('Content-Type: application/json',TRUE); echo json_encode($data);
猜你喜欢
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2012-02-09
  • 2011-06-04
  • 2016-01-28
  • 2012-06-30
相关资源
最近更新 更多