0

送信ボタンのあるメインの検索フォームが 1 つと、送信ボタンのあるセカンダリ検索フォームがいくつかあります。

私がしたいのは、テキストを入力してメイン検索フォームの送信ボタンをクリックすると、同じテキストがすべての二次検索フォームにコピーされ、二次検索フォームのすべての送信ボタンが自動的にヒットすることです。

メイン サーチ フォームの HTML コードを以下に示します。

<form action="query.php" method="get">
Search: <input type="text" name="item" size="30">
<input type="submit" value="send">
</form>

いくつかの二次検索フォームの 1 つを以下に示します。

<FORM action="http://www.dpbolvw.net/interactive" method="GET" target="_blank">
<div style="float: left; padding: 0 3px 0 0;">
<INPUT type="text" name="src" size="9"
value="<?php
$input = $_GET['item'];
echo $input;?>"                                     style="width: 110px; height: 22px;margin:0; padding: 0; font-size:140%;">
</div>

<div style="float: left; padding: 0 3px 0 0;">
<input type="image" name="submit" value="GO"                            src="http://images.guitarcenter.com/Content/GC/banner/go.gif"
alt="Search" style="font-size:140%">
/div>

<input type="hidden" name="aid" value="1234"/>
<input type="hidden" name="pid" value="1234"/>
<input type="hidden" name="url" value="http://www.guitarcenter.com/Search/Default.aspx"/>
</form>

セカンダリ検索フォームの「値」フィールドに入力した php コードに注目してください。

<?php
$input = $_GET['item'];
echo $input;?>

これにより、メイン検索フォームに入力したテキストがセカンダリ検索フォームに自動的にコピーされます。私はそれを行う方法を考え出しました。

問題は、ユーザーがメイン検索で Enter キーを押すか、マウスで「SEND」ボタンを押すと、二次検索フォームで「Enter」キーストロークまたはマウスで「GO」ボタンをクリックすることを「シミュレート」することです。形。

あなたの洞察に感謝します!

4

3 に答える 3

0

jQueryのsubmit()イベントを見てください。それがあなたの鍵になります。

私はあなたがajax経由で提出することを計画していると思いますか?そうでなければそれは無駄です。

だからあなたはこのようなことをすることができます-

すべてのフォームに特定のクラスを与え、それを「ajax_search_forms」と呼びましょう。これで、実際に送信イベントにフックできます。

$('.ajax_search_forms').submit(function(){
   var search_string = $('input[name=src]').val();
   $('.ajax_search_forms').each(function(){
     $.ajax({
        url : $(this).attr('action'),
        data : 'search_string=' + search_string,
        success : function(html){
          // Do something with the result
        }
     });
   });

   // Return false is VERY important so that the form submission does not continue
   return false;
});
于 2009-09-12T05:33:44.603 に答える
0

そのポイントが何であるかはわかりません。これらはすべて、異なるサイトを指す検索フォームのようです。Webブラウザはそれを許可しません。一度に1ページに移動できます。フォームをページに投稿すると、そのページに移動します。したがって、一度に複数のページに移動しようとしています。それは、パリとロンドンに同時に行こうとしているようなものです。あなたの計画があなたが説明しているようにどのように機能するかわかりません。

そうは言っても、クライアント側のJavaScriptを使用して呼び出すことができます

document.forms[0].submit();

したがって、ユーザーに1つのウィンドウですべての異なる検索結果を表示させることを含まない計画を思い付くことができれば、最初のフォームでこれを試すことができます...

<form action="query.php" method="get" onSubmit="document.forms(1).Submit();">
于 2009-09-12T05:38:43.157 に答える
0

Brandon Suggested として AJAX (JQuery) を使用する必要があります。http://docs.jquery.com/Events/submitを読む

例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

    $("#submit").click(function() {

//Do you stuff here like triggering other submits
//Like:
$("input#submit2").click();
$("input#submit3").click();

      return false;
    });

  });
  </script>
</head>
<body>
 <form action="javascript:alert('success!');">
    <div>
      <input type="text" />
      <input type="submit" id="submit" />
    </div>
  </form>

 <form >
    <div>
      <input type="text" />
      <input type="submit" id="submit2" />
    </div>
  </form>

 <form >
    <div>
      <input type="text" />
      <input type="submit" id="submit3" />
    </div>
  </form>

</body>
</html>
于 2009-09-12T06:20:13.493 に答える