Получить значение из ajax в поле ввода

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

html

<input name = "code" id = "search" value = "">
<input name = "school" value = "" type = "text">
<input name = "uni" value = "" type = "text">

ajax

 $('#search').on('keyup',function(){
            var value = $(this).val();
            $value=$(this).val();
                $.ajax({
                    type : 'get',
                    url : '{{URL::to('search')}}',
                    data:{'search':$value},
                    success:function(data){
                        $('input[name = "school"]').val(data);
                        $('input[name = "uni"]').val(data); //does'nt work
                    }
            });  
        });

контролер

public function search(Request $request){
        if ($request->ajax()){
            $output = "";
            $code=Model::where('code','LIKE','%'.$request->search."%")->get();
            if ($code){
                foreach ($code as $key => $code) {
                    $output.= 
                    $code->school;
                    $code->uni;
               }
               return Response($output);
            }
        }

    }

Название школы отображается правильно, но нет названия университета. Как мне это сделать? Пожалуйста помоги!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
518
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы пропустили конкатенацию для университета. Если я не ошибаюсь, это должно сработать:

$output.= $code->school;
$output.= $code->uni;

Вместо этого попробуйте следующее:

public function search(Request $request){
        if ($request->ajax()){
            $output= array();
            $code=Model::where('code','LIKE','%'.$request->search."%")->get();
            if ($code){
                foreach ($code as $key => $code) {
                    $output['school'] = $code->school;
                    $output['uni'] = $code->uni;
               }
               return Response($output);
            }
        }

    }

 $('#search').on('keyup',function(){
            var value = $(this).val();
            $value=$(this).val();
                $.ajax({
                    type : 'get',
                    url : '{{URL::to('search')}}',
                    data:{'search':$value},
                    success:function(data){
                        $('input[name = "school"]').val(data.school);
                        $('input[name = "uni"]').val(data.uni);
                    }
            });  
        });

да, я пробовал это. но эти два значения отображаются в двух полях ввода. для exp: поле ввода университета показывает название школы и университета и @ user3282898

jan 18.08.2018 05:14

Вернуть данные в виде массива, а не в виде конкатенированной строки. Думаю, поэтому в полях ввода показаны два значения. Возвращаемый массив должен быть примерно таким: $output = array('school' => 'school_name', 'uni' => 'uni_name');

bastien 18.08.2018 05:22

Я отредактировал свой ответ. Попробуйте с этим. console.info(data), чтобы узнать, какая информация присутствует и как ее следует передавать в .val().

bastien 18.08.2018 05:37

Другие вопросы по теме