Php 更新我想要的表单输入记录
我正在尝试制作一个类似于页面的个人资料。我希望它将空字段显示为文本字段,为此,我在视图中使用以下代码Php 更新我想要的表单输入记录,php,codeigniter,query-builder,Php,Codeigniter,Query Builder,我正在尝试制作一个类似于页面的个人资料。我希望它将空字段显示为文本字段,为此,我在视图中使用以下代码 $vNaam = $row->vNaam; if(empty($vNaam) && $this->uri->segment(3) == $this->session->userdata('username')){ echo "<p>Voornaam: "; echo form
$vNaam = $row->vNaam;
if(empty($vNaam) && $this->uri->segment(3) == $this->session->userdata('username')){
echo "<p>Voornaam: ";
echo form_input('vNaam', $this->input->post('vNaam'));
echo form_error('vNaam');
echo "</P>";
} else {
echo "<li>";
echo "<p>Voornaam: ";
echo $vNaam;
echo "</P>";
echo "</li>";
}
最后是我的模型
function update_info($data){
$this->db->where('id', $this->session->userdata('user_id'));
$this->db->update('users',$data);
}
有了这一点,我试图使它只更新尚未填写的记录
现在,当我在我的网站上创建一个新帐户并填写表格并进行更新时,它可以正常工作,但只能工作一次。假设我将其中一个字段留空,当我再次尝试更新该字段时,什么也没有发生。它不显示文本字段,只显示一个空标记。但问题是,我希望人们能够随心所欲地添加数据。
任何帮助都将不胜感激 我将通过一个例子向您解释这一点。但为此,必须保持输入名称和数据库字段名称相同 1表格用户示例 2.你的看法 4你的模型 说明:
当您在地址中用一个空白值提交上面的表单时,带有SLALN标志的ARAYAL过滤器将从POST数组中删除空白值。此外,由于输入名称与表字段名称相同,因此已准备好将在更新查询中使用的数组。将数组传递给模型,就这样。希望它能有所帮助。
我解决了这个具体问题,在我的一个字段上删除了愚蠢地放置的“必需”验证规则,这样当我尝试更新时,更新没有包含必需的字段,它就失败了。因为我也愚蠢到没有在我的视图上设置任何验证错误输出,所以我没有注意到。很抱歉。请描述您期望的结果和当前的结果。你有什么问题?在编辑你的帖子时描述一下,这样别人在读到你的问题时就能看到,而不是写在评论中,因为评论比较难读,也不太可能被看到。如果我没有弄错的话,那正是我正在做的。或者我在这里遗漏了什么?如果输入字段上的标签是空的,那么if…else就有问题了。但我觉得很好。如果字段为空,请检查条件是否为真,并且不知道其他条件是否为真,因为您正在使用&&这两个条件都必须为真。尝试打印条件和调试。function update_info($data){
$this->db->where('id', $this->session->userdata('user_id'));
$this->db->update('users',$data);
}
id | name | email | mobile | address
<form action="/users/update" method="POST">
<input type = "text" name = "name" />
<input type = "email" name = "email" />
<input type = "text" name = "mobile" />
<input type = "text" name = "address" />
</form>
class Users extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function update()
{
$data = array_filter($this->input->post(), 'strlen');
// Remove all empty values from array
$this->user_model->update_details($data);
}
}
class User_model extends CI_Model
{
public $db;
public function __construct()
{
parent::__construct();
$this->db = $this->load->database('default',TRUE);
}
public function update_details($data)
{
/*
Now $data is a ready array to be update directly in your table
which has all non-null values and also ready with columns name with it
*/
$this->db->where('id', $this->session->userdata('user_id'));
$this->db->update('users', $data);
}
}