Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

CodeIgniter - brisanje reda iz tabele

[es] :: PHP :: CodeIgniter - brisanje reda iz tabele

[ Pregleda: 2581 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

verodostojan

Član broj: 252511
Poruke: 110
*.dynamic.isp.telekom.rs.



+9 Profil

icon CodeIgniter - brisanje reda iz tabele14.03.2013. u 12:55 - pre 134 meseci
Dakle imam tabelu sa vise redova koja se prikazuje kroz view. Na kraju svakog reda treba da stoji link "BRISI". Kada kliknem na kraju reda na link "BRISI", hocu da se izbrise ceo red iz tabele. Tu nastaje problem.

Controller:
Code:
function delete()
 {
     
     $this->load->model('LoginModel');
     
     if ($this->LoginModel->delete_item())
     {
         redirect("NewsController/index");
         return TRUE;
     }
 else {
         echo "Brisanje nije uspelo";  
         return FALSE;
     }
 }



Model:
Code:
function delete_item()
    {
                
        $this->db->where('id', $this->input->post('id'));
        $result = $this->db->delete('pregled');
        if ($result)
        {
            return TRUE;
        }
        else            return FALSE;     
}


i view:
Code:
<a href = "<?php echo site_url("NewsController/delete/".[red]/////////////////[/red]); ?>Delete</a>


Sta treba staviti na mesto ////////////////////?
Da li je uopste cela ova logika ispravna?

Hvala
Srdacan pozdrav.
 
Odgovor na temu

Nemke_BG

Član broj: 163822
Poruke: 341
*.static.sbb.rs.

Jabber: Nemke_BG@elitesecurity.org
Sajt: https://www.nmdesign.rs


+45 Profil

icon Re: CodeIgniter - brisanje reda iz tabele14.03.2013. u 14:41 - pre 134 meseci
Prosledi parametar kao deo url-a, na primer kao poslednji segment. Pa ga onda izvuci sa URI klasom i iskoristi kao ID, mislim ako vec hoces da ti delete dugme bude <a>.

Ili mozes i da se prikacis na click event na taj <a> pomocu JS-a pa da onda simuliras neki submit ili ajax zahtev sa POST-om.

Ili mozes da prebacs da taj <a> bude post forma na primer.

Choose you destiny
...
 
Odgovor na temu

g_maestroo
Web Developer
Tunguzija

Član broj: 312416
Poruke: 19
*.dynamic.sbb.rs.



+2 Profil

icon Re: CodeIgniter - brisanje reda iz tabele14.03.2013. u 16:58 - pre 134 meseci
Codeigniter ima podrsku za ajax tako da url moze biti Controller/method sto je kul. Problem kod toga je sto kad obrises red, stranica ti se nece osveziti tako da ce izbrisani red i dalje stajati tu. U tvom slucaju $_GET ili u CI-u $this->uri->segment() je bolje resenje. Kad ispisujes iz baze povuci i id reda, napravi funkciju u modelu koja brise po id-u, napravi funkciju u kontroleru u kojoj se poziva model za brisanje. Onda napravis link u view-u <a href = "controller/funkcijazabtisanje/<?php echo $red_iz_baze->id ?>">Obrisi</a> i to je to.
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.ptt.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele14.03.2013. u 17:03 - pre 134 meseci
A kako izvesti ovo sa $this->URI->segment(); ?

[Ovu poruku je menjao verodostojan dana 14.03.2013. u 18:18 GMT+1]
 
Odgovor na temu

g_maestroo
Web Developer
Tunguzija

Član broj: 312416
Poruke: 19
*.dynamic.sbb.rs.



+2 Profil

icon Re: CodeIgniter - brisanje reda iz tabele15.03.2013. u 08:05 - pre 134 meseci
Kad ispisujes iz baze povuci i id reda, napravi funkciju u modelu koja brise po id-u, napravi funkciju u kontroleru u kojoj se poziva model za brisanje. Onda napravis link u view-u <a href = "controller/funkcijazabtisanje/<?php echo $red_iz_baze->id ?>">Obrisi</a> i to je to.
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele15.03.2013. u 11:01 - pre 134 meseci
Razumem ali kako bi trebala da izgleda funkcija u modelu koja brise red gde je id jednak necemu?
Cemu polje ID u tabeli treba biti jednako u upitu?

Nesto ovako:
Code:
function delete_item()
    {
                
        $this->db->where('id', $this->input->post('id'));
        $result = $this->db->delete('pregled');
        if ($result)
        {
            return TRUE;
        }
        else            return FALSE;     
}


ili:

Code:
function delete_item($session)
    {
                
        $this->db->where('id', $session['id']); // promenljiva $session['id] je je dobijena iz kao red tabele u obliku niza
        $result = $this->db->delete('pregled');
        if ($result)
        {
            return TRUE;
        }
        else            return FALSE;     
}


ili:

Code:
function delete_item($session)
    {
                
        $this->db->where('id', $session->id); 
        $result = $this->db->delete('pregled');
        if ($result)
        {
            return TRUE;
        }
        else            return FALSE;     
}
 
Odgovor na temu

eBojan
Vrnjacka Banja

Član broj: 10871
Poruke: 78
*.dynamic.isp.telekom.rs.

Sajt: www.mondena.net


Profil

icon Re: CodeIgniter - brisanje reda iz tabele15.03.2013. u 11:54 - pre 134 meseci
Evo kako je odprilike radim, ne znam da li je najbolje resenje ali meni vrsi posao:

View
Code:

<table class="table table-hover">
    <thead>
        <tr>
            <th>Naslov</th>
            <th>Akcija</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($redovi as $red): ?>
            <tr>
                <td><?php echo $red->naslov; ?></td>
                <td>
                    <a href="<?php echo $url . '/strana/izmeni/' . $red->id_red; ?>" title="">izmeni</a> 
                    <a href="<?php echo $url . '/strana/brisi/' . $red->id_red; ?>" title="">brisi</a>                      
                </td>
            </tr>
                 <?php endforeach; ?>                
    </tbody>
</table>


Controller
Code:

function strana() {
        
    $akcija = $this->uri->segment(2);
    $id     = $this->uri->segment(3);

    if (isset($id) and $id > 0) {
        if($akcija == 'izmeni'){
        
        } elseif ($akcija == 'brisi'){
            $this->nekiModel_model->brisi($id);
            redirect(site_url() . 'strana/', 'refresh');
        }
        
    } 


Model
Code:

function brisi($id){        
    $this->db->delete('tabela', array('id' => $id));         
}

Ono što je urađeno sa vremenom - vreme poštuje!
 
Odgovor na temu

g_maestroo
Web Developer
Tunguzija

Član broj: 312416
Poruke: 19
*.dynamic.sbb.rs.



+2 Profil

icon Re: CodeIgniter - brisanje reda iz tabele15.03.2013. u 12:21 - pre 134 meseci
Cekaj, slabo te razumem. Zasto bi setovao sesiju kad mozes da preneses podatak get metodom?

Code:

function delete_item($id_item)
{
   $q = "DELETE FROM pregled WHERE id = '$id_item'";
   $this->db->query($q);

}


Gde je $id_item id koji si mu prosledio preko uri sermenta 3 sa view-a. Mozes i da koristis active record ako hoces, ja vise volim da sam pisem query.
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele21.03.2013. u 13:05 - pre 134 meseci
Veliko hvala @eBojan za delete.

Nisam znao kako funkcionise uri->segment(); ali sada znam :)
Sada se na zalost javio problem za "edit", ili u mom slucaju "izmena".
Dakle treba promeniti red u tabeli.

View:

Code:
 ...
    <?php echo form_open('MyController/verify_editing/'.$this->uri->segment(3)); ?>
      
                        Name*:&nbsp;&nbsp;
                        <input type='text' name='name' value=""> <br><br>
                       Street:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='street' value="">  <br><br>
                       Town: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type='text' name='town' value="">  <br><br>
                        Phone*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        <input type='text' name='phone' value=""> <br><br>
         
                        
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                            <input background:url('images/login-btn.png') no-repeat; border: none; width='103' height='42' style='margin-left:90px;'  type='submit' value='Edit'>
                                   <?php echo form_close(); ?>
    ...


Controller:

Code:
 ...
    function verify_editing()
        {
            if ($this->session->userdata('logged_in'))
            {
                if ($this->session->userdata('admin') == 1)
                {
                    
                    $this->form_validation->set_rules('name', 'Name', 'trim|required|xss_clean');               
                    $this->form_validation->set_rules('phone', 'Phone', 'trim|required|xss_clean');
                    
                    if ($this->form_validation->run() == TRUE)
                    {
                        $id = $this->uri->segment(3);
                        if (isset($id) and $id > 0)
        {
          $this->load->model('LoginModel');
          $this->LoginModel->edit_item($id);
           
          redirect(site_url().'MyController/', 'refresh');
       
     
                    }
                    }
             else {
                        $temp = $this->session->userdata('logged_in');
                        $obj['id'] = $temp['id'];
                        $data['records'] = $this->LoginModel->get_Username($obj);
                        $this->load->view('ErrorEditing', $data);
       
     }
        }
                    
                    else {
                    $this->load->view('restricted_admin');
     }
     
                }
     else {
                    $this->load->view('restricted');
     }
        
    }


Model:

Code:
 function edit_item($id)
        {
            $data = array ('name' => $this->input->post('name'), 
                'street' => $this->input->post('street'),
                'town' => $this->input->post('town'),
                'phone' => $this->input->post('phone'));
            
           $this->db->where('id', $id);
         $this->db->update('pregled', $data);        
        }


Ovako nesto ne radi
Dobijam URL: localhost/myproject/MyController/verify_editing_phonebook
I samo bela prazna strana se dobija <---Tabula Rasa--->
 
Odgovor na temu

eBojan
Vrnjacka Banja

Član broj: 10871
Poruke: 78
*.3gnet.mts.telekom.rs.

Sajt: www.mondena.net


Profil

icon Re: CodeIgniter - brisanje reda iz tabele21.03.2013. u 18:26 - pre 134 meseci
Evo ja cu nastaviti sa mojim primerom i na moj nacin... dakle kad kliknes na link za izmenu iz spiska
Code:
<a href="<?php echo $url . '/strana/izmeni/' . $red->id_red; ?>" title="">izmeni</a> 


Ides na view
Code:

<?php
$attributes = array('class' => 'form-horizontal', 'name' => 'form_question');
echo form_open('', $attributes);
?>

<input type="text" name="imepolja" id="imepolja" value="<?php if (isset($polje['imepolja'])) { echo $polje['imepolja'];} ?>">

<button type="submit" >Snimi / Izmeni</button>

<?php echo form_close(); ?>


Controller moze ovako
Code:

function strana() {

    $akcija = $this->uri->segment(2);
    $id = $this->uri->segment(3);

    if (isset($id) and $id > 0) {
        if ($akcija == 'izmeni') {

            $data['polje'] = $this->polje_model->jedan($id);

            if ($this->input->server('REQUEST_METHOD') === 'POST') {
                $this->nekiModel_model->izmena($id);

            $this->load->view('izmena', $data);

            }
        } elseif ($akcija == 'brisi') {
            $this->nekiModel_model->brisi($id);
            redirect(site_url() . 'strana/', 'refresh');
        }
    } else {
        $this->load->view('index', $data);
    }



I model
Code:

function izmena($id) {

    if (isset($_POST['imepolja'])) {
        $imepolja = $_POST['imepolja'];
    } else {
        $imepolja = '';
    }

    $this->imepolja = $imepolja;

    $this->db->update('tabela', $this, array('id' => $id));
}


Opet ponavljam, mozda ima bolje resenje, ali ja sam ovako naucio i meni je ok... :)
Ono što je urađeno sa vremenom - vreme poštuje!
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.ptt.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele21.03.2013. u 19:06 - pre 134 meseci
@eBojan svaka cast...
Znam da je glupo ovo sto sto cu napisati ali meni je nekako ovaj moj primer malo "lepsi", iako ne radi :(

U svakom slucaju ti hvala na odgovoru!

Gledao sam na Stack Overflow slicne probleme.
Po odgovorima vidim da je kljucno ovo <?php echo form_open('MyController/verify_editing/'.$this->uri->segment(3)); ?>

Medjutim, meni opet nesto ne radi...

Bas sam se smorio...
Ko Velja Ilic na posnoj slavi.
 
Odgovor na temu

g_maestroo
Web Developer
Tunguzija

Član broj: 312416
Poruke: 19
*.dynamic.sbb.rs.



+2 Profil

icon Re: CodeIgniter - brisanje reda iz tabele21.03.2013. u 22:44 - pre 134 meseci
Veljo, Veljo :))) Ne bih da te obeshrabujem ali mislim da bi prvo trebao da peglas proceduralno a tek onda kad se uhodas da se bacis na OOP i izaberes neki framework.

Code:
<?php echo form_open('MyController/verify_editing/'.$this->uri->segment(3)); ?>


Dakle, ovo gore treba da ti bude ovako bez uri segmenta
Code:
<?php echo form_open('MyController/verify_editing/'); ?>


@eBojan ti je lepo napisao kako da napravis link za izmenu
Code:
<a href="<?php echo $url . '/strana/izmeni/' . $red->id_red; ?>" title="">izmeni</a> 


Ovo gore ti je view
----------------------------------
Sada u kontroleru koristis uri segment 3 da bi uhvatio
Code:
$red->id_red
iz linka, sto ti je ID od ispisane informacije. To ti treba da bi mogao modelu da kazes koji red da izmeni.
Desava se sledece, kada kliknes na link, poziva se funkcija u kontroleru koja sluzi za izmenu. Ista proverava da li u URL-u ima promenjive koje treba da uhvati.

Sada kad imas ID u kontroleru, radi sa njim sta hoces

Npr :
http://localhost/home/izmena/78

uri segment 1 = home
uri segment 2 = izmena
uri segment 3 = 78

Razumes?
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele22.03.2013. u 09:18 - pre 134 meseci
Razumem ali ne vidim View, ili Controller koji ga poziva, u kome se edituje ono sto je potrebno.

Moja zamisao je bila.

1. Opcija "izmena" je linkovana u Controller1
2. Controller1 poziva poziva View u kojem se vrsi editovanje (View je u obliku forme)
3. Provera validnosti tog view-a se vrsi u Conntroller2
4. Ukoliko je validacija uspesna (popunjena su sva trazena polja), poziva se Model koji update-uje tabelu.
5. Poziva se refresh-ovan View koji prikazuje celu tabelu sa prethodnom izmenom.
 
Odgovor na temu

g_maestroo
Web Developer
Tunguzija

Član broj: 312416
Poruke: 19
*.dynamic.sbb.rs.



+2 Profil

icon Re: CodeIgniter - brisanje reda iz tabele22.03.2013. u 12:36 - pre 134 meseci
Onda u view-u napravis ovaj link
Code:
<a href="<?php echo $url . '/conroller2/ime_funkcije/' . $red->id_red; ?>" title="">izmeni</a> 

a u controller2 hvatas uri segment 3 i standardno vrsis validaciju. Ako prodje, samo modelu koji radi update prosledis ID koji si uhvation malo pre sa uri segment-om

Formu otvori ovako
Code:

<?php echo form_open('/conroller2/ime_funkcije//'); ?>


Pogledaj ove klipove, sigurno ce ti pomoci, ja sam ucio iz njih
http://net.tutsplus.com/sessions/codeigniter-from-scratch/

Imas i ovde, skoro sam naleteo na ovaj sajt
http://codeigniter.tv/
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.ptt.rs.



+9 Profil

icon Re: CodeIgniter - brisanje reda iz tabele22.03.2013. u 21:17 - pre 134 meseci
Konacno sam uspeo nekako...

Citat:
@g_maestroo
<?php echo form_open('/conroller2/ime_funkcije//'); ?>


forma se mora otvoriti ovako:
Code:
<?php  echo form_open('controller2/ime_funkcije/'.$this->uri->segment(3)); ?>


Samo sto sad mi view za editovanje ne ucitava css. To sad nije nesto bitno, ali ako neko zna zasto, slobodno neka odgovori.

Hvala.
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: CodeIgniter - brisanje reda iz tabele01.04.2013. u 11:59 - pre 133 meseci
Koristi base_url() za link do css fajla.
 
Odgovor na temu

[es] :: PHP :: CodeIgniter - brisanje reda iz tabele

[ Pregleda: 2581 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.