0

我已经搜索过,但似乎找不到我的问题的答案,并且我尝试了各种解决方案。

本质上,我有一个正确填充的 While 循环。我搜索一个术语/关键字,然后得到一个我想要的列表。

在结果中,我使用了“fetch-result.php”中的代码,它使用 AJAX 来提取实时搜索查询:

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
 $mystuff = $row['stuff'];
 $stuffid = $row['rid'];
 echo '<a value="'.$stuffid.'">'.$mystuff.'</a><br />';
}

所以我得到的结果是“链接”。

现在我被困在我希望能够单击结果的部分,它应该在代码的 HTML 部分中返回 stuffid 值,以便它在 textarea 中返回它。

这是代码:

<textarea cols="80" rows="2" placeholder="Write here" id="input" name="query"></textarea>

和脚本:

<script>
    $(document).ready(function(){
        $("a").click(function(){
            return "Hello world!";
        });
        $("a").click(function(event){
            $("textarea").html(event.result);
        });  
    });
</script>

请注意,上面的代码是我试图自己解决这个问题的尝试,因此是“Hello world!”

我想要做的是,当您单击解决方案时,它应该自动更新用户正在编写的文本并自动完成它。我正在尝试将其编码为标记系统,但包括整个短语,其中包括各种标点符号。我发现的大多数解决方案都会爆炸部分文本并且不适合我的需要。我什至使用了异常字符,但这似乎也不能正常工作。

我使用了几种不同的 onClick(); 函数,但当我从 while 循环中获取结果时,它们似乎都不起作用。我已将脚本放在从中调用搜索的页面中,而不是放在搜索过程页面本身中。

例如,下面的搜索是我尝试使用但不适用于 While 循环的搜索。当我将它直接编码到 HTML 中时工作正常。

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
 $mystuff = $row['stuff'];
 $stuffid = $row['rid'];
 echo '<a value="'.$stuffid.'" onclick="$(/'#test/').click( function() { alert(/'clicked/'); });">'.$mystuff.'</a><br />';
}

我尝试在 MySQL 中使用 FULLTEXT 搜索,但我似乎无法让 MATCH 正常工作,所以我现在已经解决了它。我已经转换了表格并修改了列并将引擎更改为 ISAM。

所以我被困住了。如果有人可以帮助我并指出我正确的方向,或者指出我哪里出错了,我将永远感激不尽。

哦,至于我在做什么,我正在尝试创建一个硬编码的翻译器,其中单词和短语由我手动编码。不,我不想使用谷歌翻译,因为它不能正确翻译短语,而且它也不能使用我想要的语言。

4

1 回答 1

0

您遇到的问题似乎是 jQuery 单击处理程序未正确绑定。这是因为您的单击处理程序仅在脚本运行时注册 DOM 中已经存在的链接。如果此脚本在页面加载时运行,它只会拾取 HTML 中的链接,而不是使用 AJAX 动态获取的任何链接。

解决方案是使用jQuery.on. 假设#parent是一个包含所有链接的容器。然后,使用:

$('#parent').on('click', 'a', null, function(event) {
   // processing goes here
});
于 2013-06-17T01:32:22.617 回答