0

Loopj の TokenInput を使用していますが、問題なく動作しています。

同じページに 3 つの検索ボックスがあります。1 つは 3 つの異なる検索属性用で、それぞれに独自の外部データ ソースがあります (この場合は、船名、船のクラス、および船の種類で検索します)。もちろん、各検索ボックスに 1 つずつ、合計 3 つの [送信] ボタンがあります。

私の問題:「送信」ボタンをクリックすると、独自の検索ボックスの値のみが返されます(以下に含まれるスクリプト参照に基づく)。私が望むのは、任意のボタンをクリックしてすべての検索ボックスの値を取得し、MySQL クエリを作成できるようにすることです。

<script type="text/javascript">
  $(document).ready(function() {
    $("input[type=button]").click(function () {
      alert("Would submit: " + $(this).siblings("input[type=text]").val());
    });
});
</script>

注:この以前の質問「ページ上の複数の入力でtokeninput jqueryプラグインを使用する」は関連しているようですが、その質問への回答はこの問題に対処していません。

4

1 に答える 1

1

いくつかのさらなるテストの後、私は答えを見つけました。完全を期すためにここに含めます. 残念ながら、これは私がコーディングについてほとんど知らないことを浮き彫りにしています...

  1. JavaScript の「アラート」スクリプトは厄介者です。トークンの値をどこからともなく魔法のように取得するわけではありません。トークン値は、関連する入力フィールドに既に保存されています。

  2. 「送信」ボタンはおせっかいです。それは、彼らが ". 彼らは単にJavaScriptアラートをトリガーするためにそこにいるからです.フォームを送信することはできません.

  3. フォームが必要です!「TokenInput」デモは、プラグインがどのように機能するかを示していますが、フォームで使用することを意図しています。

  4. ページの上部にフォーム フィールドを追加し、ページの下部にクロージング フォーム フィールド ( </form>) を追加しました。その結果、フォーム内に 3 つの検索ボックスがありました。アクションは同じページとメソッド = post を取得することであることに注意してください。

    `<form id="myshiptype" name="pixsearchform" action="<?php echo $_SERVER[REQUEST_URI]; ?>" method="post" >`
    
  5. サンプル入力の「name」フィールドを「blah」からより意味のあるもの (shipid、classid、typeid) に変更しました。

  6. <input type="Submit" />フォームの下部に(さまざまな) [送信] ボタンを追加しました。<input type="submit" id="update" name="update" value="Update search" />

  7. [送信] ボタンをクリックした後に入力フィールドの値を表示するために、デバッグ コードをページに追加しました。

    <?php 
    $postvalues = "";
    if ($_POST) {
    $kv = array(); 
    foreach ($_POST as $key => $value) {
    $kv[] = "$key=$value";
    } 
    $postvalues = join("&", $kv);
    }
    echo "post values are ".$postvalues;
    ?>
    
  8. デバッグのサンプルを次に示します - 「post values are shipid=34&classid=&typeid=677,638&update=Update search」

次のステップは、フォームを Ajax に適応させ、フォームの「Enter」キーを無効にすることです (ユーザーが空の検索で Enter キーを押した場合)。

于 2012-06-12T06:00:31.430 に答える