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

How to submit multiple values from a single jQuery-TokenInput as Name/Value pairs

本文关键字:值对 单个 jQuery-TokenInput 提交      更新时间:2023-09-26

我正在尝试解决一些超出我技能范围的问题,所以请耐心等待。

我想做的是让用户填写一份资料,允许他们从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>

一切工作,我只需要分开的值当表单提交,我想也许是隐藏的字段。我四处找了一下,就是找不到任何有用的东西。

您可以使用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>

注意:我不是很清楚你想用什么值来表示你的"名字"。希望您可以适当地调整这个示例!

我知道这是旧的,但我不喜欢看到没有答案的问题。

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

您可以在PHP脚本中通过将字符串展开为数组来实现这一点。

$cityArray = explode(',', $cityString); 

这将把这些值分隔成一个PHP数组,然后你可以按照自己的喜好来做。