0

検索しましたが、質問に対する答えが見つからないようで、さまざまな解決策を試しました。

基本的に、正しく設定された While ループがあります。用語/キーワードを検索すると、欲しいもののリストが表示されます。

結果内で、AJAX を使用してライブ検索クエリを取得する「fetch-result.php」のコードを使用しました。

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

そのため、結果を「リンク」として取得します。

今、私は結果をクリックできるようにしたい部分で立ち往生しており、コードの HTML 部分の詰め物値をスローして、テキストエリア内に返す必要があります。

そのためのコードは次のとおりです。

<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 ループから結果をフェッチすると、どれも機能しないようです。検索プロセス ページ自体ではなく、検索が呼び出されるページ内にスクリプトを配置しました。

たとえば、以下の検索は、私が使用しようとしたものですが、Wh​​ile ループでは機能しませんでした。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 に変更しました。

だから私は立ち往生しています。誰かが私を助けて正しい方向に向けたり、どこが間違っているかを指摘したりできれば、私は永遠に感謝します.

ああ、私がやっていることに関して言えば、単語やフレーズが手動でコード化されたハードコードされたトランスレータを作成しようとしています。いいえ、Google 翻訳はフレーズを正しく翻訳せず、希望する言語に翻訳しないため、使用したくありません。

4

1 に答える 1

0

あなたが抱えている問題は、jQuery クリック ハンドラーが適切にバインドされていないことです。これは、クリック ハンドラーが、スクリプトの実行時に DOM に既に存在するリンクにのみ登録しているためです。このスクリプトがページの読み込み時に実行される場合、AJAX で動的に取得されたリンクではなく、HTML 内のリンクのみが取得されます。

解決策は、を使用することjQuery.onです。#parentすべてのリンクを保持するコンテナだとしましょう。次に、次を使用します。

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