Гиперссылки не работают правильно для заголовков результатов поиска - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь показать результаты поиска из двух таблиц. Я использовал союз, чтобы соединить их. Прямо сейчас они работают, когда я что-то ищу и сопоставляю, это видно из обеих таблиц, но у меня проблема с гиперссылками. Прямо сейчас, для результатов поиска, он всегда перенаправляет на гранты отдельных лиц при нажатии на заголовок, даже для результатов из художественной таблицы. Пожалуйста, помогите, как мне убедиться, что он идет на нужную страницу с подробностями.

Контроллер

function searchResult() {
    $keyword    =   $this->input->post('keyword');
    $data['results']    =   $this->products_model->searchResult($keyword);
    $this->load->view($this->header)
    $this->load->view('searchresults.php', $data);
    $this->load->view('footer');
}

Вид

<br>
<table>
<?php if (!$results){ ?>

  <h1> No results found. </h1>

<?php 
}

else { ?>
 <h2> Search Results </h2>
<?php

foreach($results as $row){ ?>

<br>
  <table class="table">
 <tr>
    <td><h2><a href="<?=  base_url()?>product/grantindividual/<?=$row->id?>"><?php echo $row->title?> 
  </h2></a></td>
</tr>

<tr>
    <td><h2><a href="<?=  base_url()?>product/artcallindividual/<?=$row->id?>"><?php echo $row- 
    >title?></h2></a></td>
</tr>
</table>
<?php }

 }
?>
<br>

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Вам нужен столбец для дифференциации результатов, нет необходимости добавлять фактический столбец в самой таблице, используйте фиктивные столбцы

Измените это

$this->db->select($this->db->escape('v_grants') .  ' AS source, id, Title');

На

$this->db->select($this->db->escape('v_grants') .  " AS source, id, Title, 'grant' as type ");

Измените это

$this->db->select($this->db->escape('v_art_call') . ', id, Title');

на

$this->db->select($this->db->escape('v_art_call') . ", id, Title, 'art' as type ");

Тогда вы можете легко использовать оператор if-else для отображения правильной строки (grant / art)

<table class="table">

    foreach($results as $row){ ?>
        if($row->type == 'grant'){ ?>

                <tr>
                 <td><h2><a href="<?=base_url()?>product/grantindividual/<?=$row->id?>"><?php echo $row->title?> 
                    </h2></a>
                 </td>
                </tr>

        <?php }elseif($row->type == 'grant') { ?>

                <tr>
                  <td><h2><a href="<?=base_url()?>product/artcallindividual/<?=$row->id?>"><?php echo $row->title?></h2></a>
                  </td>
                </tr>

        <?php } ?>

    <?php } ?>

</table>
0 голосов
/ 12 апреля 2020

У вас нет условия отличать предметы от двух таблиц.

<br>
<table>
<?php if (!$results){ ?>

  <h1> No results found. </h1>

<?php 
}

else { ?>
 <h2> Search Results </h2>
<?php

foreach($results as $row){ ?>

<?php
    if(!empty($row->source)){
        $url = base_url()."product/grantindividual".$row->id;
    }else{
        $url = base_url()."product/artcallindividual".$row->id;
    }
?>

<br>
  <table class="table">
     <tr>
        <td>
            <h2>
                <a href="<?=$url?>"><?php echo $row->title;?></a>    
            </h2>
        </td>
    </tr>
 </table>
<?php }

 }
?>
<br>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...