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');
}
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;
}
Vérifiez le code ci-dessous espérons que vous obtenez votre paramètre
echo $this->uri->segment('3');
$product_id = $this->input->get('id', TRUE);
echo $product_id;
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);
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
}
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.
Un peu tard mais cela a fonctionné pour moi
$data_id = $this->input->get('name_of_field');