我创建了一个自动搜索文本的表单(该文本是从录制的语音中识别的)。记录完用户的语音后,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>