如何从单个jQuery-TokenInput中提交多个值作为名称/值对

时间:2014-03-13 21:10:52

标签: javascript jquery jquery-tokeninput

我正试图想出一些超出我技能的东西,所以请耐心等待。

我要做的是让用户填写一个配置文件,允许他们从Livesearch输入中选择最多四个城市。然后我想分别使用这些城市值,从存储在数据库中到传递为url参数。

如何从似乎是逗号分隔的值字符串中取出它们并给它们自己的名字?

实施例

如果他们选择了纽约,芝加哥,迈阿密和达拉斯,那么我会得到;

<input type="text" id="Locations" name="Locations" value="New York,Chicago,Miami,Dallas">

我想要的是什么;

name="city1" value="New York"
name="city2" value="Chicago"
name="city3" value="Miami"
name="city4" value="Dallas"

脚本;

<input type="text" id="Locations" name="Locations" />
<button type="submit" class="btn">Submit</button>    

<script type="text/javascript">
$(document).ready(function() {
$("#Locations").tokenInput([    
<?php include 'city-list.php'; ?>
], {
tokenLimit:4    
});
});
</script>

一切正常,我只需要在提交表单时将值分开,我想的可能是隐藏的字段。我环顾四周,我找不到任何有用的东西。任何事都会很棒。

2 个答案:

答案 0 :(得分:0)

您可以使用tokenValue参数来实现此目的,该参数可以传递给函数。

从技术角度来看,我建议使用JSON来包含您要发送的信息。 (我不知道你之后做了什么,你可以根据需要调整这个例子。)

尝试这样的事情:

<script type="text/javascript">
$(document).ready(function() {
$("#Locations").tokenInput([    
<?php include 'city-list.php'; ?>
], {
tokenLimit:4,    

tokenValue: function(param, el){
                var token = {   "name" : //Do something clever here to generate the names you want. You can get the city name of the token under param.name.
                                "value" : param.name,
                            };
                return JSON.stringify(token);
                }

});
});
</script>

N.B。我并不完全清楚你想要用什么价值作为你的名字&#39;。希望你能适当地调整这个例子!

答案 1 :(得分:0)

我知道这已经过时了,但我不喜欢看到无人接听的问题。

OP似乎只想在提交表单时分隔逗号分隔的字符串。

您可以通过将字符串扩展为数组来在PHP脚本中执行此操作。

NUMERIC(11,6) DEFAULT 10000

这会将值分成一个PHP数组,然后你可以随意使用它。