gpt4 book ai didi

mysql - 传递变量以在 codeigniter 中查看页面

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:47 25 4
gpt4 key购买 nike

我正在尝试将 2 个变量传递给表单页面。

一个是表单字段的查询,第二个是错误变量。

加载页面时,出现以下错误:

遇到 PHP 错误

Severity: Notice
Message: Undefined variable: error
Filename: views/upload_form.php
Line Number: 7

这是我的 Controller :

<?php

class Upload extends CI_Controller {

function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->database();

}

function index()
{
$this->load->helper('url');
$this->load->model('Image_model');

$data['query'] = $this->Image_model->image_biz();

$this->load->view('upload_form', $data, array('error' => ' ' ));
}

function do_upload()
{

$config['upload_path'] = dirname($_SERVER["SCRIPT_FILENAME"]).'/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '200';
$config['max_width'] = '1024';
$config['max_height'] = '768';

$this->load->library('upload', $config);

if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());

$this->load->view('upload_form', $error);

} else {

$image_data = array('upload_data' => $this->upload->data());

// can be add extra feature here.

$insert_data = array(
'image_file' => $image_data['upload_data']['file_name'],
'image_path' => $image_data['upload_data']['full_path'],
'image_ext' => $image_data['upload_data']['file_ext'],
'image_width'=> $image_data['upload_data']['image_width'],
'image_height' => $image_data['upload_data']['image_height'],
);

$this->db->insert('image', $insert_data);//load array to database

$this->load->view('upload_success', $image_data);

}

}
}
?>

这是我的 View 页面“upload.php”:

    <html>
<head>
<title>Upload Form</title>
</head>
<body>

<?php echo $error;?>

<?php echo form_open_multipart('upload/do_upload');?>

Image: <input type="file" name="userfile" size="20" /><br>
<label for="select">Business ID:</label>
<select name="image_bizID">
<?php foreach ($query->result() as $row) { ?>
<option value=""><?=$row->biz_id;?></option>
<?php } ?>
</select>

<br /><br />

<input type="submit" value="upload" />

</form>

</body>
</html>

如果您能帮助解决此错误,我们将不胜感激。

谢谢。

最佳答案

Undefined variable: error 表示有一个名为error 的变量未定义。

在你看来,你有这一行:

<?php echo $error;?>

这需要在 Controller 中设置 $image_data['error'],因为 Controller 中的 $image_data['error'] 变为 $error 在 View 中。

要以最简单的方式修复它,只需将它分配给 Controller 中的一个空字符串:

$image_data['error'] = '';

或者简单地检查它是否首先在 View 中设置:

<?php 
if (isset($error))
echo $error;
?>

还有一些方法可以通过适当设置 error_reporting 来忽略通知,或者像这样在 view 中抑制该行的错误:

<?php @echo $error; // notice @ before echo ?>

但解决问题总比忽视它好。


更新

刚注意到,您以错误的方式传递了变量。所以这个:

function index()
{
$this->load->helper('url');
$this->load->model('Image_model');

$data['query'] = $this->Image_model->image_biz();

$this->load->view('upload_form', $data, array('error' => ' ' ));
}

应该是:

function index()
{
$this->load->helper('url');
$this->load->model('Image_model');

$data['query'] = $this->Image_model->image_biz();
$data['error'] = '';

$this->load->view('upload_form', $data);
}

您传递的所有内容都应该在单个数组或对象中,因此 $data['query']$data['error'] 是正确的方法,因为我们只发送 $data 数组。加载 View 函数中的第三个参数用于将 View 作为字符串返回而不是渲染它,因此在这种情况下您不想使用它。

在此处阅读有关 View 的更多信息:http://ellislab.com/codeigniter/user-guide/general/views.html

关于mysql - 传递变量以在 codeigniter 中查看页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24853854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com