Как сделать так, чтобы термины в поиске по базе данных были пользовательским вводом в code.org - PullRequest
0 голосов
/ 17 февраля 2019

"По сути, я работаю над приложением на code.org, и есть кнопка с именем: SubmitButtonFreeClothingScreen. При нажатии этой кнопки открывается экран с именем" Screen2 ", в котором содержится текстовое поле с именем" display_info ". Машинавыполняет поиск в базе данных «FreeClothing», и я хочу, чтобы он выполнял поиск по термину и отображал данные этого термина. Пользователь вводит термин в текстовое поле с именем «text_input1». Я думал, что приведенный ниже код будет работать, но машинавсегда отображает оператор else. Есть ли другой способ сделать это? "

onEvent("SubmitButtonFreeClothingScreen", "click", function(event) 
                {
                      {
                        setScreen("Screen2");

                        readRecords("FreeClothing",{ZipCodes: getText("text_input1")}, 
        function(records) 
                        {
                          var names="";

                        if (records.length>0)
                          {
                          for(var i =0; i < records.length; i++) 
                          {
                            var number= i+1;
                            names=names+ number + ") " + records[i].Name+"" +"\n\n"+"Address: "+ records[i].Address+"\n\n"+"Phone Number: "+ records[i].PhoneNumber+"\n\n"+"Description: "+ records[i].Description+"\n\n";
                          }
                          setText("display_info",""+names);
                      }
                      /*Display Furniture Store information located in database*/
                      else
                      {
                        setText ("display_info", "This Zipcode unfortunately has no Furniture Store locations. Please try another one");
                        /*If no information is found, the string above is printed*/
                      }
                      }
                );
                      }
                });

1 Ответ

0 голосов
/ 24 февраля 2019

Ваш код ищет строку в столбце чисел .

То есть, когда вы звоните getText("text_input1"), вы получаете почтовый индексваш пользователь набрал в виде строки, что-то вроде "98101".Но почтовые индексы в вашей базе данных хранятся в виде чисел, например 98101 (без кавычек!).Поскольку readRecords() не выполняет автоматическое преобразование значений, никаких результатов он не находит.

Существует два быстрых способа решения этой проблемы.Один из подходов заключается в использовании parseInt() для преобразования пользовательского ввода из строки в число перед поиском:

readRecords("FreeClothing",{ZipCodes: parseInt(getText("text_input1"))},

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

Screenshot of the

Я сделал пример проекта , показывающий этот тип поиска в действии.

...