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

Я использую 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 */ 

?>

VIEW

<?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 ]

0 голосов
/ 29 апреля 2018

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


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

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

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

0 голосов
/ 29 апреля 2018

Ваше 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...