我在普通的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;
}
}
答案 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>