Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
kolbok
0 / 0 / 0
Регистрация: 10.07.2018
Сообщений: 3
#1

Search mvc что сделать чтобы заработала кнопка GO - PHP

11.07.2018, 00:40. Просмотров 93. Ответов 1
Метки нет (Все метки)

Не пойму как сделать чтобы все заработало...

Модель, поиск по значению:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    
public function search($post)
    {
        $search = $post['search_q'];
        $data = null;
        try {
            $sql = "SELECT *
                FROM articles
                WHERE title 
                LIKE '%".$search."%'
                ";
            $data = $this->connect()->query($sql)->fetchAll(PDO::FETCH_OBJ);
 
        } catch (Exception $ex) {
            echo $ex->getMessage();
        }
        return $data;
    }
Контроллер:
PHP
1
2
3
4
5
6
7
8
    public function searchAction()
    {
        if (isset($_POST) && !empty($_POST)){
            $data = $this->model->search($_POST);
        }
 
        $this->view->generate('search_view.php', $data);
    }
Сам поиск:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<div class="card my-4">
    <h5 class="card-header">Search</h5>
    <div class="card-body">
        <div class="input-group">
            <input type="text" name="search_q" class="form-control" placeholder="Search for...">
            <span class="input-group-btn">
                  <button class="btn btn-secondary"  type="button">Go!</button>
                </span>
 
        </div>
    </div>
</div>

Тут выводится одна статья по поиску:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!-- Blog Entries Column -->
<div class="col-md-8">
    <h1 class="my-4">Page Heading
        <small>Secondary Text</small>
    </h1>
 
 
   <!-- Blog Post -->
    <div class="card mb-4">
        <?php if($data) : ?>
            <?php foreach ($data as $dat) : ?>
                <img class="card-img-top" src="/web/site/image/post1.jpg" alt="Card image cap">
                <div class="card-body">
                    <h2 class="card-title"><?php echo $dat->title; ?></h2>
                    <p class="card-text"><?php echo $dat->sub_title; ?></p>
                    <a href="/main/post?<?php echo $dat->id; ?>" class="btn btn-primary">Read More &rarr;</a>
                </div>
                <div class="card-footer text-muted">
                    Posted on January 1, 2017 by
                    <a href="#">Start Bootstrap</a>
                </div>
            <?php endforeach; ?>
        <?php else : ?>
        <?php endif; ?>
    </div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2018, 00:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Search mvc что сделать чтобы заработала кнопка GO (PHP):

Как сделать чтобы при нажатии на enter кнопка не нажималась
Всем привет. Есть текстовое поле и кнопка(который появляется после клика по...

Как сделать так, чтобы кнопка появлялась только после клика на сайте рекламодателя?
Всем привет. Возник вопрос. У меня есть сайт и там можно бесплатно добавить...

Что необходимо сделать, чтобы улучшить навыки программирования на PHP?
Всем привет! У меня такой вопрос. Я хочу заниматься веб-программированием. У...

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

Как сделать, чтобы кнопка обновляла страницу?
У меня текст бокс и кнопка, текст бокс принимает какой то текст, и по нажатию...

Как сделать, чтобы при разных условиях появлялась разная кнопка php?
Что-то типо этого, только тут не верно:) мне нужно, чтобы работало так: если...

1
tarasalk
1089 / 643 / 261
Регистрация: 13.06.2013
Сообщений: 2,256
11.07.2018, 07:37 #2
Форму надо сделать, чтобы передать данные на сервер.

Кстати, реализация MVC у вас не очень.
1) Модель это слой - у вас же идет жесткая привязка к одному классу.
2) В модели try catch подавляет ошибку, но работа продолжается. Это не правильно. Скрипт должен прекратить работу, при необходимости откатить изменения, а юзер должен увидеть красивую ошибку. Текст из эксепшена это не красивая ошибка, более того там могут быть конфиденциальные данные.
3)
PHP
1
if (isset($_POST) && !empty($_POST)){
Это проверка ни о чем. $_POST в http контексте всегда существует. То что он не пустой, вам мало что дает, нужно проверять есть ли там конкретно параметр 'search_q'.
PHP
1
2
if (array_key_exists('search_q', $_POST)) {
}
А дальше конкретно $_POST['search_q'] и надо передавать в модель.
4) Лучше стараться не использоваться абстрактные названия типа $data. Лучше $articles.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2018, 07:37
Привет! Вот еще темы с решениями:

Как сделать так, чтобы div исчез после авторизации на сайте, и вместо него появилась кнопка "Выход"?
На сайте есть форма авторизации, которая помещена в div. Как сделать так, чтобы...

Как сделать чтобы заработала М-функция
М-функция function H =h1(Alfa,A) for i=1:1:N1 ...

Не знаю, что дописать, чтобы программа заработала
Имеется простой код программы, матлаб пишет что не определена функция t,y. Что...

как сделать, чтобы программа для ардуино заработала в AVR?
Немного странно наверное, но хочется сделать так: HEX файл полученный с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru