在我的网站上,我有一个表格如下:
<div id="addComment">
<form method="post" action="" id="add_comment">
<label for="Text">Text</label><br />
<textarea name="Text" id="Text"> </textarea><br />
<input type="submit" name="submit" id="submit" />
</form>
</div>
我正在使用codeigniter。
我的控制器里面有这个:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Image extends CI_Controller {
function index()
{
$post['post'] = $this->uri->segment(3);
$this->load->view('theme/header');
$this->load->view('view_post', $post);
$this->load->view('theme/footer');
}
public function add_comment(){
$text = $this->post('Text');
$url = $this->uri->segment(3);
$this->load->model('comment_model');
$this->load->database();
$this->load->helper('url');
$status = "";
$msg = "";
if (empty($_POST['Text']))
{
$status = "error";
$msg = "Please enter a title";
}
if ($status != "error")
{
$file_id = $this->comment_model->add_comment($text, $url);
if($file_id == true)
{
$status = "success";
$msg = "Comment successfully added";
}
else
{
unlink($data['full_path']);
$status = "error";
$msg = "Something went wrong when posting the comment, please try again.";
}
@unlink($_FILES[$file_element_name]);
}
echo json_encode(array('status' => $status, 'msg' => $msg));
}
}
?>
在我的表单“动作”中,我尝试添加“add_comment”。但它似乎没有帮助..但是当我这样做。我的网址将如下所示:“website.com/image/index/add_comment/”所以我想这是在正确的道路上。但由于某种原因..评论不会添加到我的MySql数据库..
这是我的模特:
<?php
class Comment_model extends CI_Model {
public function add_comment($text, $url)
{
$currenttime = date('d F Y H:i:s', strtotime('+1 hour'));
$data = array(
'url' => $url,
'comment' => $text,
'date' => $currenttime
);
$this->db->insert('comments', $data);
return $this->db->insert_id();
}
}
?>
在我看来,一切都应该工作..... 有什么帮助吗?
提前致谢。
编辑:
我想出了一些东西..当我向表单操作添加“add_comment”时会发生这种情况:当我从url(http://hurhaar.com/image/index/add_comment)中删除“index”时。它会工作..然后我得到“{”状态“:”错误“,”msg“:”请输入标题“}”。但为什么我的表单操作会将“索引”添加到网址....?
答案 0 :(得分:0)
你没有从代码中的表单中获取已发布的值
$file_id = $this->comment_model->add_comment($text, $url);
首先,您必须将表单的已发布值存储在$ text和$ url
中 像这样$text=$this->input->post('Text');
第二,你必须在表格中提及行动
action="add_comment"
第三,你不能像这样if (empty($_POST['Text']))
在codeignitor中取得后期价值
你必须使用
if (empty($this->input->post('Text')))