我想知道如何将参数(Get)传递给我的模型以在我的数据库中搜索并返回结果?
我为数据库中的所有products
创建了一个Research函数
这是我的代码:
控制器:
function recherche2($search){
$this->load->model('ordiDepotModele');
$resultat = $this->ordiDepotModele->rechercher($search);
$i=0;
foreach ($resultat->result() as $row){
$item = array();
$item['num'] = $row->idProduit;
$item['nomProduit'] = $row->nomProduit;
$item['prix'] = $row->prixVente;
$listeitems[$i] = $item;
$i++;
}
$data['item'] = $listeitems;
}
型号:
function rechercher($search){
$query = $this->db->query("SELECT * FROM produit WHERE nomProduit LIKE '%".$search."%'");
return $query;
}
查看:
if(isset($item)){
for($i = 0; $i<count($item);$i++){?>
<div class = "res_item">
<div class = "res_img">
<img src = "<?php echo $image; ?>/computer2.png"/>
</div>
<div class = "res_info">
<div class "res_num">
<label class = "titre_prod">
Numéro :
</label>
<span class = "info_prod"> <?php echo $item[$i]['num']?> </span>
</div>
<div class "res_name">
<label class = "titre_prod">
Nom :
</label>
<span class = "info_prod"> <?php echo $item[$i]['nomProduit']?> </span>
</div>
<div class "res_prix">
<label class = "titre_prod">
Prix :
</label>
<span class = "info_prod"> <?php echo $item[$i]['prix']?> $ </span>
</div>
<div class "res_cat">
<label class = "titre_prod">
Catégorie :
</label>
<span class = "info_prod"> Test </span>
</div>
</div>
</div>
<?php
}
}
else
echo 'Aucun résultat obtenu';
感谢所有
答案 0 :(得分:0)
在codeigniter中,参数通常在url段中传递,使得url看起来更好。
网址看起来像example.org/recherche2/KEYWORD
。这种技术有一些缺点,因为并不是所有字符都在URL中。
您可以在配置文件中设置允许的字符。
如果您将使用基于网址段的方式,控制器将如下所示:
function recherche2($search) {
$data['nom'] = $search;
$this->load->model('ordiDepotModele');
$resultat = $this->ordiDepotModele->rechercher($data['nom']);
$i=0;
foreach ($resultat->result() as $row){
$item = array();
$item['num'] = $row->idProduit;
$item['nomProduit'] = $row->nomProduit;
$item['prix'] = $row->prixVente;
$listeitems[$i] = $item;
$i++;
}
$data['item'] = $listeitems;
}
顺便说一下,你用什么理由不使用帖子?
答案 1 :(得分:0)
您需要在application/config/config.php
$config['enable_query_strings'] = TRUE;
但是你现在不需要它。你应该把它作为一个URL段传递。
function recherche2($keyword) {
$this->load->model('ordiDepotModele');
$resultat = $this->ordiDepotModele->rechercher($keyword);
$data['nom'] = $keyword;
...
我认为您的问题是您将值传递给您的模型:
$resultat = $this->ordiDepotModele->rechercher($data['nom']);
将数组中的“nom”值作为单个值获取..(假设您只有一个搜索框)
然后在警报中执行此操作:
function rechercher($data){
echo "<script>alert('".$data['nom']."');</script>";
这是从关联数组中读取一个值,但此时$data
不是一个数组,它是一个包含字符串的局部变量。
你可以查看它
echo $data;
//编辑 抱歉,我无法在评论中发布格式化代码。 试试这个:
public function test() {
echo '['.$this->input->get('search').']';
echo '<form method="GET">';
echo '<input type="input" name="search" /><input type="submit" />';
echo '</form>';
}