【问题标题】:Codeigniter display data description based on selected dropdown idCodeigniter 根据选择的下拉列表显示数据描述
【发布时间】:2016-02-23 00:48:57
【问题描述】:

我想在文本字段中显示我选择的下拉 id 的相应描述。我将使用它来减去与该 id 对应的天数,以减去处理将结果标记为延迟天数以执行该过程所需的实际天数。例如这个过程是标签打印,相应的天数只有 3 天,但实际过程在 4 天后完成,延迟 1 天。我正在使用 codeigniter,但我遇到了无效方法等错误。请帮忙。

这是我的控制器,

$data['operation'] = $this->wip_model->get_operation();

这是模型,

function get_operation(){
    $this->db->select('OperationName');
    $this->db->select('DeliveryDays');
    $this->db->from('operation');
    $query = $this->db->get();
    $result = $query->result_array();

    return $result;
}

这是我的观点sn-p,

<div class="form-group">
    <label class="control-label">Operation</label>
    <select class="form-control" id="operation" name="operation">
       <option value="">-SELECT-</option>
       <?php foreach($operation as $val){ ?>
       <option value="<?php echo $val['OperationName'];?>">
       <?php echo $val['OperationName'];?></option>
       <?php } ?>
    </select>
    <span class="text-danger"><?php echo form_error('operation');?></span>
</div>

我试图在选择选项之后放置一个隐藏的文本框,但我得到了意想不到的结果,例如,不是显示与所选值相对应的天数,而是显示选择选项要显示的下一个项目。我希望我的英语没那么差,希望你能明白我所呈现的逻辑......

我搜索并找到了这段代码:

function showDays(str){
    $.get("<?php echo site_url('wip/get_deliverydays');?>",{q:str},function(data){
        $("#deliverydays").html(data);
    });
}

我认为它现在可以工作,但我现在遇到了 Uncaught ReferenceError: showDays is not defined...

【问题讨论】:

  • 只是一个注释,您可以像这样使用一个选择 $this-&gt;db-&gt;select('OperationName, DeliveryDays');
  • 是的,我已经这样做了,但我无法显示与所选值对应的天数,例如,如果我选择点打印,天数应该是 3 天。
  • 我现在正在检查这个线程 stackoverflow.com/questions/15509514/… 是否可以帮助我解决我的问题...
  • 是的,如果你明白我发布的逻辑......

标签: php mysql codeigniter


【解决方案1】:

型号,

public function get_operation(){
    $this->db->select('OperationName,DeliveryDays,id');
    $this->db->from('operation');
    $query = $this->db->get();
    return $query;
}

public function fetch_result($posted_id){
    $this->db->select('OperationName,DeliveryDays');
    $this->db->from('operation');
    $this -> db -> where('id',$posted_id);
    $query = $this->db->get();
    return $query;
} 

在视图中,

<?php echo form_open_multipart(base_url().'Controller/action'); ?>
<div class="form-group">
    <label class="control-label">Operation</label>
    <select class="form-control" id="operation" name="operation" onchange="set_to(this.value)";>
        <option value="">-SELECT-</option>
        <?php foreach($operation as $val) { ?>
        <option value="<?php echo $val->id;?>"><?php echo $val->OperationName;?></option>
        <?php  } ?>
    </select>
    <input type="text" id="idesc" name="idesc"/>
    <input type="submit" name="reqsub" class="btn btn-primary">
<?php echo form_close(); ?>

<script type="text/javascript">

function set_to(id){
    $('#idesc').val(id);
}

</script

在控制器中,

 $this->load->helper(array('form', 'url'));
 $posted_id=$this->input->post('operation');
 $value['data']=$this->model->fetch_result($posted_id);
 $this->load->view('viewpage',$value);

在新视图中,

<?php

foreach($data as $row){
    echo $row->OperationName;
    echo $row->DeliveryDays;
}

?>

【讨论】:

  • 我会尽力通知你的,请稍候
  • 我使用 javascript 更新了我的代码,试试这个,你肯定会得到
  • 好的,我会试试你的代码,但我会先吃午饭,所以我可能会在一小时后与你取得联系......无论如何,谢谢你的帮助......
  • 我可以将 id 更改为 DeliveryDays,因为这是我需要显示的而不是 i 吗?
  • 您真正想在文本框中获取什么?如果交货日?然后将其更改为交货日期
猜你喜欢
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多