Якорный тег Codeigniter с гиперссылкой на форму в контроллере, но данные отображаются вне таблицы

Я использую Codeigniter 3 и пробую операцию CRUD. Я создал базовую операцию crud и показываю данные в таблице, однако я связал тег абзаца в контроллере под таблицей с контроллером формы, если я хочу ввести другие данные

Проблема заключается в том, что когда я нажимаю на ссылку, чтобы ввести другие данные, она перенаправляет мне исходную форму в контроллере, но когда я ввожу данные и отправляю их, данные отображаются под таблицей в теге абзаца.
Я не могу понять, почему это происходит, так как контроллер тот же

Ранее я сталкивался с подобной проблемой при перенаправлении в контроллер. Я перенаправил страницу после отправки в контроллер show_form (), который в основном перенаправлял страницу в $ this-> load-> view (‘learn / view_form’);
в котором я сохранил условие, что если нет данных, нажмите, чтобы войти. Теперь, когда он перенаправляет на контроллер show_form (), он переходит в другое состояние, даже если данные присутствуют

КОНТРОЛЛЕР

<?php

defined('BASEPATH') OR exit("No direct script access allowed");


class Learning extends CI_Controller{

public function __construct(){
parent::__construct();
$this ->load->helper("url");
$this->load->model("tatti_test");
$this->load->database();
$this->load->helper();


}

//functions should be passed here

//creating a function

function start_learn() {
//this varible
$this->load->view('learn/start_learn');

}

function start_crud(){

$this->load->view('learn/form');
}

function show_form(){
$this->load->view("learn/view_form");


}
function insert_form(){

$name = $this->input->post("u_name");
$email = $this->input->post("u_email");
$mobile = $this->input->post("u_mobile");
//File Uploading

$config['upload_path']="./assets/images/";
$config["allowed_types"]="gif|jpg|png";
$config['encrypt_name']=true;

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

if(!$this->upload->do_upload("u_file")){


$file='noimage.png';
}

else {

$filework = $this->upload->data();
$file =$filework['file_name'];
}

$data = array(

"name"=>$name,"email"=>$email,"mobile"=>$mobile,"file_name"=>$file


);
$this->tatti_test->insert_tatti($data);
redirect("learning/view_form");

}




function view_form(){

$data['returned_data']=$this->tatti_test->show_form();

$this->load->view("learn/view_form",$data);
}

function delete_entry(){

$id=$this->uri->segment(3);
$data=$this->tatti_test->for_unlink($id);
$filepath="./assets/images/".$data['file_name'];
unlink($filepath);
$this->tatti_test->delete_entry($id);
redirect('learning/view_form');
}



function time_to_update(){
$id=$this->uri->segment(3);
$data['fetched_update_entry']=$this->tatti_test->update_entry($id);
$this->load->view("learn/update.php",$data); //bus associative array hi leta hai

}

function up_db(){

$name =$this->input->post('up_name');
$email = $this->input->post('up_email');
$mobile = $this->input->post('up_mobile');
$file = $this->input->post('up_file');
$id = $this->input->post('up_id');

//File Uploading

$config['upload_path']="./assets/images/";
$config["allowed_types"]="gif|jpg|png";
$config['encrypt_name']=true;

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

if(!$this->upload->do_upload("up_file")){

$data= $this->tatti_test->remove_prev($id);
$file=$data['file_name'];


}

else {
$data= $this->tatti_test->remove_prev($id);
$path="./assets/images/".$data['file_name'];
unlink($path);
$filework = $this->upload->data();
$file =$filework['file_name'];
}

$data = array(

"name"=>$name,"email"=>$email,"mobile"=>$mobile,"file_name"=>$file


);
$this->tatti_test->up_nw($data,$id);
redirect('learning/view_form');
}






} /*this accesses command from main ci controller */

?>

ПОСМОТРЕТЬ

<?php $this->load->view("common/header.php");


if ($returned_data != 0){ ?>
<table border='1'>
<tr>
<th>Sr No</th>
<th>Name</th>
<th>Password</th>
<th>Mobile</th>
<th>Email</th>
<th>Final Name</th>
<th>Delete</th>
<th>View</th>
</tr>



<?php $i=0; foreach ($returned_data as $key=>$d){

?>

<tr>
<td>
<?php echo ++$i; ?>
</td>
<td>
<?php echo $d['name'];?>
</td>
<td>
<?php echo $d['mobile'];?>
</td>
<td>
<?php echo $d['email'];?>
</td>
<td>
<?php echo $d['file_name'];?>
</td>
<td>
<img src="<?php echo base_url().'/assets/images/'.$d['file_name'];?>" width="100px" ; height="100px" />
</td>
<td><a href="<?php echo base_url().'index.php/learning/time_to_update/'.$d['id'];?>">Edit</a></td>
<td><a href="<?php echo base_url().'index.php/learning/delete_entry/'.$d['id'];?>">Delete</a></td>
</tr>
</table>
<p>Add another entry
<?php echo anchor("learning/start_crud"," here "); ?>
</p>

<?php } ?>

<?php } else { ?>

<p>No data to show please click
<?php echo anchor("learning/start_crud"," here "); ?>to enter</p>

<?php } ?>










<?php $this->load->view("common/footer.php");

МОДЕЛЬ

<?php


class Tatti_test extends CI_Model{

function insert_tatti($insert_data){

$this->db->insert("f_form",$insert_data);

}


function show_form(){


$query =  $this->db->get("f_form");

$response=[];

if ($query->num_rows() > 0){

$response = $query->result_array();



}

else {

$response = 0;
}

return $response;
}


function for_unlink($id){
$this->db->where("id",$id);
$query = $this->db->get("f_form");
$response=[];
foreach ($query->result_array() as $rows){

return $response = $rows;
}
}

function delete_entry($id){


$this->db->where("id",$id);
$this->db->delete("f_form");

}

function update_entry($id){

$this->db->where("id",$id);
$query = $this->db->get("f_form");
$response = [];
if($query->num_rows() > 0 ){

foreach($query->result_array() as $rows);

$response = $rows;
}
return $response;
}


function up_nw($introduced_data,$id){

$this->db->set($introduced_data);
$this->db->where('id',$id);
$this->db->update('f_form');

}

function  remove_prev($id){
$this->db->where('id',$id);
$query = $this->db->get('f_form');
$response = [];
foreach($query->result_array() as $rows){

$response=$rows;
}
return $response;

}
}

?>

Вот как отображаются данные при нажатии на ссылку ниже таблицы
введите описание изображения здесь

-2

Решение

Вы HTML форматирование испортилось. Вы должны иметь закрытие </table> вне вашего цикла foreach или преждевременного <table> закрытие.

Также переехал Добавить еще одну запись ссылка вне цикла foreach. Так что он появляется только один раз, и ваш формат документа не испортился.

Вы можете использовать это фиксированное представление вместо:

<?php $this->load->view("common/header.php");


if ($returned_data != 0){ ?>
<table border='1'>
<tr>
<th>Sr No</th>
<th>Name</th>
<th>Password</th>
<th>Mobile</th>
<th>Email</th>
<th>Final Name</th>
<th>Delete</th>
<th>View</th>
</tr>



<?php $i=0; foreach ($returned_data as $key=>$d){

?>

<tr>
<td>
<?php echo ++$i; ?>
</td>
<td>
<?php echo $d['name'];?>
</td>
<td>
<?php echo $d['mobile'];?>
</td>
<td>
<?php echo $d['email'];?>
</td>
<td>
<?php echo $d['file_name'];?>
</td>
<td>
<img src="<?php echo base_url().'/assets/images/'.$d['file_name'];?>" width="100px" ; height="100px" />
</td>
<td><a href="<?php echo base_url().'index.php/learning/time_to_update/'.$d['id'];?>">Edit</a></td>
<td><a href="<?php echo base_url().'index.php/learning/delete_entry/'.$d['id'];?>">Delete</a></td>
</tr>

<?php } ?>
</table>
<p>Add another entry
<?php echo anchor("learning/start_crud"," here "); ?>
</p>
<?php } else { ?>
<p>No data to show please click
<?php echo anchor("learning/start_crud"," here "); ?>to enter</p>
<?php } ?>
<?php $this->load->view("common/footer.php");
1

Другие решения

Я понимаю, что вы пытаетесь сделать CURD,
Прежде всего, попробуйте это, чтобы улучшить ваш код и заполнить недостающую библиотеку codeigniter: https://github.com/avenirer/CodeIgniter-MY_Model


Для вашего кода:

  • Данные не передаются в представление в show_form (),
  • Вы должны проверить отправку формы и условия для загрузки представления,
  • простая вещь — это следовать передовой практике, используя готовые скрипты,

Надеюсь, это будет полезно,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector