如何通过JavaScript实现自动提交表单进行搜索


How to implement AUTO submit form for searching via JavaScript?

我创建了一个自动搜索文本的表单(该文本是从录制的语音中识别的)。记录完用户的语音后,JS(下图)将语音识别为文本,然后通过id="searchform"调用表单。这个表单然后调用函数,该函数在单词数据库中搜索单词。JS代码:

 final_transcript = capitalize(final_transcript);   
    var queryTextField = document.getElementById("search_query");
    queryTextField.value = final_transcript; 
//automatic submit button search form is if form
        document.getElementById('searchform').submit();

JS代码调用函数"媒体/搜索",以这种HTML形式实现:

<li><form class="input-group navbar-form" id="searchform" action="<?php echo base_url();?>media/search" method="post"></li>
    <input type="text" class="form-control" placeholder="Vyhladat titulky..." id="search_query" name="string" />
    <button type="submit"  name="btn_search"></button>
    </form>

"媒体/搜索"功能,用于搜索已识别的文本:

//Search function
        function search($string = null) {
                //function can search string sent in url or in form
                $data['string'] = isset($_POST['string']) ? $_POST['string'] : $string;
                //For not null form
                if(! empty($data['string'])) {
                        //Searching in database
                        $gid = (! access(3) && ! access(4)) ? $this->userinfo('group') : null;
                        $data['list'] = $this->media_model->search($data['string'], $gid);
                }
                //Data are set to show
                $this->template->view("media/search", $data);
        }

自动提交似乎是可行的,因为有结果的页面会在语音记录后显示,但不会显示搜索结果。我认为搜索功能是有效的,但没有价值,所以它似乎搜索"没有单词"。我需要帮助,我是JS的新手。这个代码是在我的学校创建的,我需要将其更改为自动工作

你应该在脑海中制定秩序。

第二个函数是PHP(服务器端),它搜索结果,然后将结果写入$data变量,并将其传递给视图"media/search"。

所以你至少应该试着打印出这个变量,看看它是否有效。要打印它,你可以用PHP:

<div id="results"><?php echo $data?></div>