将纯PHP代码转换为codeigniter

时间:2016-02-29 01:56:39

标签: php mysql codeigniter

我在普通的php中创建了一个真正有效的下拉列表,我希望它也适用于我的codeigniter项目,但我不知道如何。我试过但代码不起作用。这是要转换为codeigniter的普通php: 主页:

<select id="operationName" name="operationName">
<option value="">-SELECT-</option>
<?php while($rs = $query->fetch())
{
extract($rs);
?>
<option value="<?php echo $OperationName;?>"><?php echo $OperationName;?>   </option>
<?php
}
?>
 </select>
<input type="text" id="deldays" name="deldays" >
<div id="deldays"></div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).ready(function(){
$('#operationName').change(function(){
    $.get('trial.php',{q:$(this).val()},function(data){
        $('#deldays').val(data);
    });
});
});

这里是被调用的php函数:

if(isset($_GET['q']))
{
$days = $_GET['q'];
try{
$qry = $conn->prepare("SELECT * FROM operation WHERE OperationName = :opt");
$qry->bindParam(':opt',$days);
$qry->execute();
}
catch(PDOException $e)
{
echo $e->getMessage();
exit();
}
while($rs = $qry->fetch())
{
extract($rs);
echo $DeliveryDays;
}
}

2 个答案:

答案 0 :(得分:2)

首先,你必须知道MVC的概念,使用哪个codeigniter

M是模型(文件夹应用程序/模型)=数据库操作

V是视图(文件夹应用程序/视图)=视图,html,css,脚本等。

C是控制器(文件夹应用程序/控制器)=页面处理程序

以下页面有查询,如果插入模型

,则更好

将其保存在文件夹应用程序/模型中,名称为m_operation.php

<?php
class Operation extends CI_Model {
    //table name
    private $operation = 'operation';
    function Operation() {
        parent::__construct();
        $this->load->helper('file');
    }
    function allOperation( $days ) {
        $this->db->where('OperationName', $days);
        return $this->db->get($operation)->result();                
    }
}
?>

查看以下页面,将其保存在文件夹application / view中,名称为v_operation.php

<select id="operationName" name="operationName">
<option value="">-SELECT-</option>
<?php 
foreach ($operation as $row) {
    echo "<option value = '". $row->OperationName ."'>".
            $row->OperationName .
        "</option>";
}
?>
</select>


<input type="text" id="deldays" name="deldays" >
<div id="deldays"></div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).ready(function(){
$('#operationName').change(function(){
    $.get('trial.php',{q:$(this).val()},function(data){
        $('#deldays').val(data);
    });
});
});

以下页面是控制器,将其保存在文件夹应用程序/控制器中,名称为operation.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Operation extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->helper('url');// Load Helper URL CI
        $this->load->model('m_operation');// load the model
    }

    public function index() {
        if(isset($this->input->get('q'))) {
            $days = $this->input->get('q');
            $data['operation'] = $this->m_operation->allOperation($days);       
            $this->load->view('v_operation', $data);
        }
    }
}

您可以访问名称为控制器的网页,例如

yoursitename.com/index.php/operation

答案 1 :(得分:0)

我在问题中发现了一个问题,请查看代码以供将来参考:

控制器:

$operation = explode(',',$this->input->post('operationName'));
        foreach($operation as $val)
        {
            $opName = trim($operation[0]);
            $days = trim($operation[1]);
        }

模型:

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

    return $result;
}

视图:

<select class="form-control" id="operationName" name="operationName" >
       <option value="">-SELECT-</option>
        <?php
         foreach($operation as $val)
         {
          ?>
          <option value="<?php echo $val['OperationName'].','.$val['DeliveryDays'];?>"><?php echo $val['OperationName'];?></option>
          <?php
         }
      ?>
      </select>