web-dev-qa-db-fra.com

Comment obtenir l'identifiant de l'URL dans codeigniter?

J'essaie d'obtenir "id" de l'URL afin de supprimer ce produit sélectionné spécifique. J'ai utilisé $this->uri->segment(3) mais il n'obtient aucune valeur d'URL. Bien que je puisse voir le 'product_id' dans mon URL.

Si j'ai utilisé $this->url->segment(2) cela me donne l'URL du deuxième formulaire de valeur, mais je ne parviens pas à obtenir l'ID du produit. Voici mon code. Veuillez me guider.

VOIR

echo "<a href='delete_controller?product_id=$product_id'>";
echo $name;
echo "</a>";

L'URL suivante est générée lorsque je clique sur $ name.

http://localhost/designs2/index.php/products_controller/delete_controller?product_id=70

Contrôleur

public function delete_controller()
    {
        echo $product_id =$this->uri->segment(3);           
        echo "Taha";
        $this->load->view('delete_confirmation');
    }
9
Taha Kirmani

si vous devez passer la valeur, vous devez saisir l'URL comme ceci

localhost/yoururl/index.php/products_controller/delete_controller/70

et dans la fonction de contrôleur, vous pouvez lire comme ça

function delete_controller( $product_id = NULL ) {
  echo $product_id;
}
16
Agha Umair Ahmed

Vérifiez le code ci-dessous espérons que vous obtenez votre paramètre

echo $this->uri->segment('3');
19
Md.Jewel Mia
$product_id = $this->input->get('id', TRUE);
echo $product_id;
6
raj

Je pense que vous utilisez mal le routage URI CodeIgniter: http://ellislab.com/codeigniter%20/user-guide/general/routing.html

Fondamentalement, si vous aviez un Products_controller avec une méthode appelée delete($id) et que l'url que vous avez créée était de la forme http://localhost/designs2/index.php/products_controller/delete/4, La fonction de suppression recevrait le $id comme paramètre.

En utilisant ce que vous avez là, je pense que vous pouvez obtenir l'identifiant en utilisant $this->input->get('product_id);

1
cecilozaur

Voir page

  <a href="<?php echo base_url();?>products_controller/delete_controller/<?php echo $product_id;?>"><?php echo $name; ?></a>

page du contrôleur

  function delete_controller( $product_id) {

         echo $product_id;
         //add your logic

  }
1
codeigniter leaner

Dans codeigniter, vous ne pouvez pas passer de paramètres dans l'url comme vous le faites dans le noyau php. Donc, supprimez le "?" et "product_id" et passez simplement l'id. Si vous voulez plus de sécurité, vous pouvez crypter l'id et le transmettre.

1
CodeCanyon

Un peu tard mais cela a fonctionné pour moi

  $data_id = $this->input->get('name_of_field');
0
Nick.K