2017-10-05 2 views
0

Je fais un site Web dans CodeIgniter et j'essaye de faire une barre de menu avec toutes les catégories, et quand vous cliquez sur une certaine catégorie il doit montrer tous les produits qui sont dedans cette catégorie mais ne fonctionne pas vraiment. Lorsque j'ouvre la page d'affichage category.php au lieu de la barre de menu latérale, il y a vraiment de gros liens blancs qui ne mènent à rien. Aussi quand je clique sur un de ces liens j'obtiens une erreur. Ceci est l'erreur:Fonction de catégorie de fonction dans codeigniter ne fonctionne pas

An Error Was Encountered 

The URI you submitted has disallowed characters. 

Aussi c'est le message d'erreur lorsque je charge la vue category.php:

A PHP Error was encountered 

Severity: Notice 

Message: Trying to get property of non-object 

Filename: views/allecadeaus.php 

Line Number: 26 

Backtrace: 

File: /home/ubuntu/workspace/application/views/allecadeaus.php 
Line: 26 
Function: _error_handler 

File: /home/ubuntu/workspace/application/controllers/AlleCadeausController.php 
Line: 12 
Function: view 

File: /home/ubuntu/workspace/index.php 
Line: 315 
Function: require_once 

La page de vue category.php ressemble à ceci: enter image description here

fichier allecadeaus.php:

<?php include_once ('templates/header.php'); ?> 

<!-- Alle cadeaus gele title bovenaan pagina --> 

<div class="container-fluid"> 
    <div class="row"> 
     <div class="col-lg-12 bg-warning" style="font-size:25px"> 
      <center>Alle cadeaus</center> 
     </div> 
     </div> 
</div> 

<hr /> 

<br> 

<!-- Cadeau categorie side menu --> 
<div class="container-fluid"> 
    <div class="row"> 
      <div class="col-md-4"> 
       <div id="categorymenu"> 
        <center> <h3>Categorieën</h3> </center> 
        <ul class="list-group"> 
         <?php foreach ($category() as $row) : ?> 
          <li class="list-group-item"> 
           <a href="<?php echo base_url('Product/category/'.$row->id);?>"> <?php echo $row->name; ?></a> 

          </li> 
         <?php endforeach; ?> 

        </ul> 
       </div> 
      </div> 




<!-- Laat cadeau zien op alle cadeaus pagina --> 
<div class="col-md-8"> 
<?php foreach($products as $product) : ?> 
    <div class="col-md-2"> 
     <div id="product"> 
     <a href="<?php echo base_url() ?>/Product/details/<?php echo $product['product_id']; ?>"> 
      <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto_thumb']; ?>"> 
     </a> 
     <div class="product_naam"><?php echo $product['product_naam']; ?></div> 
     <div class="ophaal_plaats"> 
      <?php echo $product['ophaal_plaats']; ?> 
     </div> 
     <div class="aangeboden_door"> 
      <p>Aangeboden door: Peter</p> 
       </div> 
     </div> 
     </div> 


<?php endforeach; ?> 

</div> 



<div class="clearfix"></div> 

<?php include_once ('templates/footer.php'); ?> 

Ceci est mon point de vue de category.php page:

<?php include_once ('templates/header.php'); ?> 

<!-- Alle cadeaus gele title bovenaan pagina --> 

<div class="container-fluid"> 
    <div class="row"> 
     <div class="col-lg-12 bg-warning" style="font-size:25px"> 
      <center>Alle cadeaus</center> 
     </div> 
     </div> 
</div> 

<hr /> 

<br> 

<!-- Cadeau categorie side menu --> 
<div class="container-fluid"> 
    <div class="row"> 
      <div class="col-md-4"> 
       <div id="categorymenu"> 
        <center> <h3>Categorieën</h3> </center> 
        <ul class="list-group"> 
         <?php foreach (get_categories_h() as $category) : ?> 
          <li class="list-group-item"> 
           <a href="<?php echo base_url('Product/category/'.$category->id);?>"> <?php echo $category['name']; ?></a> 

          </li> 
         <?php endforeach; ?> 
        </ul> 
       </div> 
      </div> 




<!-- Laat cadeau zien op alle cadeaus pagina --> 
<div class="col-md-8"> 
<?php foreach($products as $product) : ?> 
    <div class="col-md-2"> 
     <div id="product"> 
     <a href="<?php echo base_url() ?>/Product/details/<?php echo $product['product_id']; ?>"> 
      <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto_thumb']; ?>"> 
     </a> 
     <div class="product_naam"><?php echo $product['product_naam']; ?></div> 
     <div class="ophaal_plaats"> 
      <?php echo $product['ophaal_plaats']; ?> 
     </div> 
     <div class="aangeboden_door"> 
      <p>Aangeboden door: Peter</p> 
       </div> 
     </div> 
     </div> 


<?php endforeach; ?> 

</div> 



<div class="clearfix"></div> 

<?php include_once ('templates/footer.php'); ?> 

C'est la fonction que j'ai dans mon dossier de contrôleur product.php:

public function category($id) 
{ 
    $data['title'] = 'Category'; 
    $data['page'] = 'Product/category'; 
    $data['category'] = $this->Category_model->findByCategory($id); 
    $data['products'] = $this->Product_model->findByCategory($id); 
    $this->load->view('category', $data); 
} 

Ce sont les fonctions de mon modèle de produit (Product_model.php):

public function get_categories(){ 
     $this->db->select('*'); 
     $this->db->from('categories'); 
     $query = $this->db->get(); 
     $result = $query->result_array(); 
     return $result; 
    } 


    public function findAll(){ 
     return $this->db->get('product')->result(); 
    } 

    public function findByCategory($category_id){ 
     $this->db->where('category_id', $category_id); 
     return $this->db->get('product')->result(); 
    } 

Et voici mon fichier Category_model.php:

<?php 


class Category_model extends CI_Model { 

    public function findAll(){ 
     return $this->db->get('category')->result(); 
    } 

    public function find($id){ 
     $this->db->where('id', $id); 
     return $this->db->get('category')->row(); 
    } 

} 
?> 

Quelques informations de base de données:

Table 1: products 
-product_id 
-product_naam 
-product_beschrijving 
-user_id 
-category_id 

table 2: categories: 2 columns: 
1.id 
2.name 

Voici comment ma table catégories ressemble:

id name 

1 Cosmetica 
2 Antiek en kunst 
3 Voor kinderen 
4 Apparatuur 
5 Boeken 
6 Muziek en instrumenten 
7 Spellen 
8 Sieraden 
9 Overige cadeaus 
10 Sport 
+1

Sous ce grand espace blanc il y a un message d'erreur. Dans votre navigateur, regardez la source de la page et affichez le code source HTML pour voir ce que le message d'erreur dit. En outre, activez la journalisation des erreurs et consultez vos journaux d'erreurs pour voir quel est le problème. Il y a probablement plusieurs problèmes, mais une fois que vous pouvez voir réellement ce qu'ils sont, vous pouvez travailler à travers eux – MrCarrot

+0

Son cette erreur: Une erreur PHP a été rencontré Gravité: Avis Message: Essayer d'obtenir la propriété de non-objet Nom du fichier : vues/allecadeaus.php Numéro de ligne: 26 Backtrace: fichier: /home/ubuntu/workspace/application/views/allecadeaus.php ligne: 26 Fonction: _error_handler fichier:/home/ubuntu/espace de travail/application/contrôleurs/AlleCadeausController.php ligne: 12 Fonction: fichier: /home/ubuntu/workspace/index.php ligne: 315 Fonction: require_once – JohnDoe122

+0

bien, vérifier des vues/allecadeaus.php Numéro de ligne: 26 – Vickel

Répondre

0

Votre nom de catégorie/id contiennent des caractères qui ne sont pas autorisés avec votre configuration permitted_uri_chars actuelle dans le config.php fichier.

Allez à votre fichier config.php (application\config\config.php) et donnent la possibilité $config['permitted_uri_chars'] la valeur: a-z 0-9~%.:_\-\=

Cela permettra presque tous les caractères communs.

+0

Je l'ai déjà configuré – JohnDoe122

+0

Pourriez-vous donner un exemple de la façon dont vos noms/id de catégorie apparaissent? – SaltyPotato

+0

Ill modifier ma question et montrer comment ma table de catégorie ressemble – JohnDoe122

0

Vous devez chnage dans votre vue fichier remplacer ce code

<?php foreach ($category as $row) : ?> 
          <li class="list-group-item"> 
           <a href="<?php echo base_url('Product/category/'.$row->id);?>"> <?php echo $row->name; ?></a> 

          </li> 
         <?php endforeach; ?> 
+0

Obtenir cette erreur maintenant: Une erreur PHP a été rencontré Gravité: Erreur Message: Appel à la catégorie de fonction non définie() Nom du fichier: vues/allecadeaus.php Numéro de ligne: 24 Backtrace: – JohnDoe122

+0

cette ligne: JohnDoe122

+0

voir ma réponse mise à jour son '$ category' seulement –