TokenInput - 从多个搜索字段获取值

时间:2012-06-11 10:16:33

标签: jquery-tokeninput

我正在使用Loopj的TokenInput,它工作正常。

我在同一页面上有三个搜索框 - 每个搜索框有三个不同的搜索属性,每个搜索框都有自己的外部数据源(在这种情况下,按船名,船级和船型搜索)。当然,有三个“提交”按钮,每个搜索框一个。

我的问题:点击任何“提交”按钮只会返回自己搜索框的值(基于附带的脚本 - 参见下文)。我想要的是单击 ANY 按钮并获取 ALL 搜索框的值,以便我可以创建MySQL查询。

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

注意:此earlier question "Using tokeninput jquery plugin on more than one input on a page"。似乎有关,但该问题的答案并未解决此问题。

1 个答案:

答案 0 :(得分:1)

经过一些进一步的测试后,我已经找到了答案,为了完整起见,我会将其包含在这里。不幸的是,这突出了我对编码知之甚少......

  1. javascript'alert'脚本是一个红鲱鱼。它并没有神奇地从空中获取令牌值。令牌值已存储在相关的输入字段中。

  2. “提交”按钮是红色鲱鱼。那是因为他们是 “他们只是在那里触发了 javascript提醒,他们无法提交表单。

  3. 您需要一个表单!“TokenInput”演示展示了该插件的工作原理,但它们的目的是用于表格。

  4. 我在页面顶部添加了一个表单字段,并在页面底部添加了一个结束表单字段(</form>)。结果是我的三个搜索框在表单内。请注意,操作是检索相同的页面,方法= 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. 以下是调试示例 - “发布值为shipid = 34&amp; classid =&amp; typeid = 677,638&amp; update = Update search”

  9. 接下来的步骤是使表单适应Ajax并禁用表单中的“Enter”键(当用户在空搜索中点击Enter时)。