2017-03-20 1 views
0

J'ai une fonction, qui compte les visites de mon site Web, j'ai essayé d'envoyer une variable dans la vue, mais il ne fonctionne pas, la variable doit passer trought un fichier contenu les modèles. Lorsque la variable passe directement à la vue, cela fonctionne, mais pas autrement. Aidez-moi, s'il vous plaît. Merci.envoyer une variable à la vue avec CodeIgniter

dans le contrôleur

$query = $object->Searcher_visits(); 
if ($query->num_rows > 0) { 
while ($query->result()) { 
$current_date = $list['date'] = $query->date; 
$count = $obj_forum->visits($current_date); 
$list2['num'] = $count->num; 
$list2['current_date'] = $current_date; 
} 
} 
$data['list2'] = $list2; 
$data['list'] = $lis; 
$this->load->view('template/general_template/template', $data); 

dans la vue (ce point de vue est le menu de gauche)

<table border="1" width="250px" cellpading="5px" cellspacing="5px">'; 
<tr><td>FECHA</td><td>VISITAS</td></tr>'; 
tr><td><?php echo $list2['current_date']; ?></td> 
<td align="right"><?php echo $list2['num'];?></td> 
</tr> 
</table> 

le modèle

<?php 
$this->load->view('header'); 
$this->load->view('banner'); 
$this->load->view('left_menu'); 
?> 

Répondre

1

Vous passez la variable à votre modèle, mais vous avez besoin de la variable dans la vue left_menu, mais vous ne donnez pas la variable à cette vue. Une solution rapide serait juste passer la variable le long de l'intérieur de votre modèle:

<?php 
$data = array($list1, $list2); 
$this->load->view('header'); 
$this->load->view('banner'); 
$this->load->view('left_menu', $data); 
?> 
-1

En supposant que les données $ [ « liste2 »] est un tableau. Depuis un tableau devrait itéré même si elle a une seule valeur sur chaque clé de tableau. un foreach va résoudre votre problème.

<table border="1" width="250px" cellpading="5px" cellspacing="5px">'; 
 
<tr><td>FECHA</td><td>VISITAS</td></tr>'; 
 
tr><td><?php echo $list2['current_date']; ?></td> 
 
<td align="right"><?php echo $list2['num'];?></td> 
 
</tr> 
 
</table>


devrait ressembler à ceci:

<table border="1" width="250px" cellpading="5px" cellspacing="5px">; 
 
    <tr> 
 
    <td>FECHA</td> 
 
    <td>VISITAS</td> 
 
    </tr>; 
 
    <?php foreach($list2 as $list):?> 
 
    <tr> 
 
    <td> 
 
     <?= $list->current_date ?> 
 
    </td> 
 
    <td align="right"> 
 
     <?=$list->num?> 
 
    </td> 
 
    <?php endforeach;?> 
 
    </tr> 
 
</table>

+0

le problème est que la variable ne reconnaît pas son dans la vue Une erreur PHP a été rencontré Gravité: Avis Message: Undefined variable: liste2 Nom du fichier: left_menu.php Numéro de ligne: 69 – Mary

0
//Controller code 

$query = $object->Searcher_visits(); 
if ($query->num_rows > 0){ 
    $data['list2'] = $query->result(); 
    $data['list'] = $obj_forum; 
} 
$this->load->view('header'); 
$this->load->view('banner'); 
$this->load->view('left_menu',$data); 

// Voir la page

<table border="1" width="250px" cellpading="5px" cellspacing="5px"> 
    <tr> 
    <td>FECHA</td> 
    <td>VISITAS</td> 
    </tr> 
    <?php foreach($list2 as $ex2){?> 
    <tr> 
     <td><?php echo $ex2->date; ?></td> 
     <td align="right"><?php echo $list->visits($ex2->date);?></td> 
    </tr> 
<?php }?> 
</table>