我想将隐藏的图像名称值传递给控制器功能和
在我的视图updt-project-details.php文件中,在更新页面中显示多个图像并检查有效的扩展和显示图像,我还使用ajax和javascript删除图像,如果不存在,我只显示“没有文档发现“如果存在然后显示图像,像这样的代码,
<div class="row">
<div class="col-sm-8">
<input type="file" name="docs[]" multiple="multiple">
<?php $f = explode(',',$ans[0]->Proj_docs_path);
foreach($f as $n){ if($n==''){ echo "<h4>No Documents Found.</h4>"; ?> <input type="hidden" name="p" value="<?php $arr=''; ?>"> <?php }else{ ?> <a target="_blank" href="<?php echo base_url();?>images/project_docs/<?php echo $n; ?>">
<img src="<?php echo base_url(); ?>images/<?php $azz = explode('.',$n);$ext = end($azz);if($ext=="pptx"||$ext=="ppt"){ ?>extensions_img/pptx.jpg<?php }elseif($ext=="pdf"){ ?>extensions_img/pdfimg.png <?php }elseif($ext=="docx"||$ext=="doc"){ ?>extensions_img/docximg.png <?php }elseif($ext=="xlsx"||$ext=="xls"){ ?>extensions_img/xlsx.png <?php }else{ ?>project_docs/<?php echo $n; }?>" style="margin:35px 25px;" height="100" width="100" class="img-thumbnail"><input type="hidden" name="p" value="<?php $arra = array(); $b = array_push($arra,$n); ?>"></a>
<a onclick="remove(<?php echo $m; ?> ,'<?php echo $n; ?>'); return confirm('Are You Sure to delete this!');" style="width:15px;height:15px;position: absolute;margin-left: -26px;margin-top: 10px;"><img src="<?php echo base_url(); ?>images/x.png" style="width:15px;height:15px;position: absolute;margin-left: -26px;margin-top: 10px;"></a>
<?php } }?>
</div>
</div>
我的控制器Welcome.php文件和更新功能
public function projdetails_update($id)
{
$this->form_validation->set_rules('pcost','Project Cost','numeric');
if($this->form_validation->run()==false)
{
$d['m'] = $id;
$this->load->view('header');
$this->load->view('updt-project-details',$d);
$this->load->view('footer');
}
else
{
$cost = $this->input->post('pcost');
$imghid = $this->input->get('p');
if($imghid='')
{
// then update null value to image which updated successfully.
}
else
{
$data = array('img_path'=>implode($this->input->get('p'));
}
}
// then update query which performs correctly.
}
如何在数组中获取隐藏值并存储它然后更新它。 这是我的问题。
答案 0 :(得分:0)
如果有多个图像并且您的输入标记名称被覆盖,请查看它究竟发生了什么。您需要提供动态image_name,即img
标记名称或您正在存储图像名称的隐藏值。
这是你实现它的方式。
<?php
foreach($f as $key => $n)
{
if($n=='')
{
//Your conditional code
}
?>
<input type="hidden" name="<?php echo 'p_'.$key;?>" value="<?php $arra = array(); $b = array_push($arra,$n); ?>">
<?php
}
?>
你甚至可以在foreach中计算,但可能不需要。 您需要为隐藏输入提供动态名称。
之后在你的控制器中,你可以简单地执行此操作
<?php
public function projdetails_update($id)
{
$this->form_validation->set_rules('pcost','Project Cost','numeric');
if($this->form_validation->run()==false)
{
$d['m'] = $id;
$this->load->view('header');
$this->load->view('updt-project-details',$d);
$this->load->view('footer');
}
else
{
print_r($_POST);
//here you will get post variables of hidden values
}
答案 1 :(得分:0)
我改为
$arra = array();
foreach($f as $key=>$n)
{
if($n=='')
{
// updated as null
}
else
{
<input type="hidden" name="<?php echo 'p_'.$key;?>" value="<?php echo $arra[] = $n; ?>">
}
它存储值,我在控制器中获取它。