codeigniter-3 - 如何使用codeignitor将变量从控制器传递到视图
问题描述
我试图将一个变量(ans)从我的控制器(添加)传递到我的视图(添加),但我收到错误:未定义的变量。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: ans
Filename: views/add.php
Line Number: 45
这是我的控制器(Add.php)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Add extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->helper('form', 'date(%d-%m-%y)');
$this->load->database();
$this->load->model('add_model');
}
function index()
{
$this->load->view('add');
}
function date()
{
$datestring = '%Y %m %d - %h:%i %a';
$time = time();
echo mdate($datestring, $time);
}
function calculation()
{
$datestring = 'Day: %d Month: %m Year: %Y - %h:%i %a';
$time = time();
$date=mdate($datestring, $time);
//'user_registered' => mdate('%Y-%m-%d %H:%i:%s', now())
//echo mdate($datestring, $time);
if (isset($_POST['add']))
{
//$ans = array('ans' => $ans);
$number2=200;
$ans =$_POST['number1'] * $number2;
$data=array( 'number1'=>$_POST['number1'],
'number2'=>$number2,
'ans'=>$ans,
'date'=>mdate('%Y-%m-%d %H:%i:%s', now())
);
//$ans = array('ans' => $ans);
}
$this->load->library('form_validation');
$this->form_validation->set_rules('number1', 'Number1', 'required|trim' );
//$this->form_validation->set_rules('number2', 'Number2', 'required|trim' );
if ($this->form_validation->run()) {
$data = array('number1' => $this->input->post('number1'),
'answer' => $ans,
'date' => mdate('%Y-%m-%d %H:%i:%s', now())
);
$id=$this->add_model->insert($data);
if($id > 0)
{
$this->session->set_flashdata('message',' stored in db');
echo $ans;
}else{
$this->session->set_flashdata('message',' not stored in db');
//$this->load->view('add');
}
}
$this->load->view('add', $data);
}
}
我的看法 (add.php)
<!DOCTYPE html>
<html>
<head>
<title>CustomerRegistrationForm</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>-->
</head>
<body>
<div class="container">
<br />
<h3 align="center">Order With Us Now</h3>
<br />
<div class="panel panel-default">
<div class="panel-heading">Order Form
</div>
<div class="panel-body">
<?php
if($this->session->flashdata('message'))
{
echo '
<div class="alert alert-success">'.$this->session->flashdata("message").'
</div>';
}
?>
<form method="post" action="<?php echo base_url(); ?>add/calculation">
<div class="form-group">
<label>Enter quantity</label>
<input type="number" name="number1" id="number1" class="form-control" placeholder="Enter the quantity(minimium 50 kgs)" value="<?php echo set_value('number1'); ?>" />
<span class="text-danger"><?php echo form_error('number1'); ?></span>
</div>
<div>
<?php echo set_value('number2'); ?>
</div>
<div class="form-group">
<label>Answer</label>
<p class="text-success">
<?php echo $ans; ?>
</p>
</div>
<div class="form-group">
<input type="submit" name="add" value="Add" class="btn btn-info" /> <a href="<?php echo base_url(); ?>welcome">HOME</a>
</div>
</form>
</div>
</div>
</div>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</body>
</html>
我的模型(Add_model.php)
<?php
class Add_model extends CI_Model
{
function insert($data)
{
$this->db->insert('calculation', $data);
return $this->db->insert_id();
//return $this->db->insert('users', $data);
}
}
?>
请帮我解决这个错误。
解决方案
function calculation()
{
$datestring = 'Day: %d Month: %m Year: %Y - %h:%i %a';
$time = time();
$date=mdate($datestring, $time);
//'user_registered' => mdate('%Y-%m-%d %H:%i:%s', now())
//echo mdate($datestring, $time);
if (isset($_POST['add']))
{
//$ans = array('ans' => $ans);
$number2=200;
$number1 = $this->input->post('number1');
$ans = $number1 * $number2;
$data=array( 'number1'=>$number1,
'number2'=>$number2,
'ans'=>$ans,
'date'=>mdate('%Y-%m-%d %H:%i:%s', now())
);
//$ans = array('ans' => $ans);
}
$this->load->library('form_validation');
$this->form_validation->set_rules('number1', 'Number1', 'required|trim' );
//$this->form_validation->set_rules('number2', 'Number2', 'required|trim' );
if ($this->form_validation->run()) {
$data = array('number1' => $this->input->post('number1'),
'answer' => $ans,
'date' => mdate('%Y-%m-%d %H:%i:%s', now())
);
$id=$this->add_model->insert($data);
if($id > 0)
{
$this->session->set_flashdata('message',' stored in db');
echo $ans;
}else{
$this->session->set_flashdata('message',' not stored in db');
//$this->load->view('add');
}
}
$this->load->view('add', $data);
}
推荐阅读
- html - 传递给车把模板的数据未在客户端显示
- couchdb - 限制数据库访问 CouchDB 中的视图
- python - 卷积输出巨大的值而不是 0-1 范围
- windows - 在 Windows 防火墙中使用通配符
- sql - 在 SQL Server 的两个表中执行基于一到多行的左连接
- java - 从 google/noto 字体创建 java.awt.Font
- git - git push -f 只改变了 master 的历史,而不是文件
- regex - Google Script - 在单元格(电子表格)中获取带有撇号的文本并在 Google Doc 的正文中搜索它
- batch-file - 使用文件夹名称键将文件夹移动到相应的子文件夹
- vba - 计算 Excel 行中的颜色变化