Автозаполнение выпадающего меню путем ввода чисел в поле с помощью php

Я новичок в php и html в целом, поэтому прошу меня простить за глупые высказывания. Я пытаюсь автоматически заполнить раскрывающееся меню после ввода числа в пустое поле.

Я поискал в Google, но не смог найти много информации об автоматическом заполнении для PHP, отправляя только форму. Сейчас у меня есть SQL-запрос. Когда я хочу вывести результат запроса, он может отображаться как ключ или значение массива:

(на мой взгляд)

<?php

                      foreach($data as $key)
                      {
                         print_r($key['name']); 
                         echo '<br/>';
             print_r($key['id']);
             echo <br/>;


                      } ?>

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

Использование FuelPHP для моего бэкэнда

Моя модель

public static function get_results()
    {
        $result = DB::query('select substring(cat.item_class_cd,1,1) as id, cat.class_name as name
        from MASTER_DB.MS_CATEGORY cat
        where length(cat.item_class_cd) = 1')->execute();
        // doesn't work

        return $result;
        //return ['id' => 1, 'name' => 'test']
    }

Мой контроллер

public function action_index()
    {
        $model = new Model_Shelf();
        $data = $model->get_results();
        // create the layout view
        $view = View::forge('shelf/index');

        // assign global variables so all views have access to them
        /* $view->data = $result; */


        //assign views as variables, lazy rendering
        $view->head = View::forge('common/head');
        $view->header = View::forge('common/header');
        $view->content = View::forge('common/content', array('data'=>$data));
        $view->footer = View::forge('common/footer');

        // return the view object to the Request
        //return $view;
        return Response::forge($view);
    }

Если вам нужны какие-либо разъяснения, дайте мне знать. Надеюсь, я был достаточно ясен >‹

Изменить: уточнение

В настоящее время я просматриваю https://fuelphp.com/docs/classes/input.html но я запутался. Как именно вы должны использовать post($index = null, $default = null)? Это должно идти в моем представлении?

<label for="category">Category</label>
<form action="content.php" method="post">
<input type="text" name="category" <?php Input::post($data['id']) ?>><br/>

data['id'] — это идентификатор категории, а data['name'] — название категории.

<div class=" form-group">
<select class="form-control form-control-sm">
<?php
Input::get(data['id']);
foreach($data as $option){
<option>$option['name']</option>
}
?>
</select>

Мой код может быть немного запутанным. Что я пытаюсь сделать, так это то, что если выбрано значение от 0 до 6, оно заполнит раскрывающийся список именем категории для выбранного идентификационного номера категории.


person onibaku    schedule 30.08.2019    source источник


Ответы (2)


Если вам нужен поиск в вашей базе данных - используйте условие LIKE. Например: SELECT * FROM some_table WHERE your_field LIKE '%2%' (где 2 - число, которое вы пытаетесь найти). % необходимо выполнить условие: любое число до 2 и любое число после. Таким образом, он может найти, например: 132, 231 и т. д.

person LanceHunter    schedule 30.08.2019
comment
Я думаю, это определенно помогает вещам в долгосрочной перспективе. Тем не менее, я все еще не понимаю, как делать автозаполнение. Выпадающее меню заполняется без отправки формы. - person onibaku; 30.08.2019

Возможно, я не очень хорошо понял проблему, но я думаю, что если вы уже получили все данные, которые вы использовали с помощью подсказки, показанной LancelHunt выше, вам нужно только распечатать результаты с помощью foreach внутри выпадающего меню, где эхо будет быть сделано внутри тега, который обрабатывает выпадающие элементы.

person Franklyn Kleiton    schedule 30.08.2019
comment
Извините за задержку с ответом. Мне не нужно делать ничего особенного, если я хочу, чтобы это произошло без отправки страницы с помощью нажатия кнопки? - person onibaku; 02.09.2019
comment
Кроме того, я не совсем уверен, как использовать сообщение и взаимодействовать с PHP для отображения такой вещи. - person onibaku; 02.09.2019
comment
Итак, вам, вероятно, понадобится использовать асинхронное программирование с javascript. - person Franklyn Kleiton; 03.09.2019