在rails中,jQuery令牌输入不允许自定义条目
在rails中,jQuery令牌输入不允许自定义条目 我已下载1.6.0版本的令牌输入,但无法输入自定义条目。只要我在文本框中输入一些文本并取出光标,文本就会消失。 只有我需要从自动完成列表中选择 如果我使用下面的脚本函数,解决方案是什么在rails中,jQuery令牌输入不允许自定义条目,jquery,jquery-tokeninput,Jquery,Jquery Tokeninput,在rails中,jQuery令牌输入不允许自定义条目 我已下载1.6.0版本的令牌输入,但无法输入自定义条目。只要我在文本框中输入一些文本并取出光标,文本就会消失。 只有我需要从自动完成列表中选择 如果我使用下面的脚本函数,解决方案是什么 <pre> <script type="text/javascript"> tokenInput("SOME_ID", "/token_input/name"); function tokenInput(text_box_id, ur
<pre>
<script type="text/javascript">
tokenInput("SOME_ID", "/token_input/name");
function tokenInput(text_box_id, url){
jQuery("#" + text_box_id).tokenInput(url, {
allowCustomEntry: true,
preventDuplicates: true,
theme: "facebook",
});
}
</script>
</pre>
请给我这个解决方案,令牌输入应该允许自定义输入。这应该很快在令牌输入主分支中得到解决,但同时,合并到您自己的fork应该可以解决这一问题。这对我来说很有帮助 我需要自定义条目,它将存储数据库和自动增量id将是这个令牌的值 我已按如下方式修复了此问题。有一个技巧,在添加令牌时,一个请求转到服务器,将新令牌添加到数据库,其新的插入id到达客户端,并设置为添加令牌的值 从github获得允许免费标记功能
<?php
if(isset($_GET["q"])) {
$q = trim($_GET["q"]);
$isSearchItemExists = false;
$sql = sprintf("SELECT token_id, token from tokens WHERE token LIKE '%%%s%%' ORDER BY popularity DESC LIMIT 10", mysql_real_escape_string($q));
$rec = mysql_query($sql);
$arr = array();
while($row = mysql_fetch_array($rec)) {
$obj = new stdClass();
$obj->id = $row["token_id"];
$obj->name = $row["token"];
if($obj->name==$q) {
$isSearchItemExists = true;
}
$arr[] = $obj;
}
if(!$isSearchItemExists) $arr = array_merge(getNewToken($q),$arr);
$json_response = json_encode($arr);
echo $json_response;
} else if(isset($_GET["action"]) && $_GET["action"]=="newtoken") {
$token = strtolower($_REQUEST["name"]);
$sql = "SELECT * FROM tokens WHERE token='$token'";
$rec = mysql_query($sql);
$numRows = mysql_num_rows($rec);
if($numRows>0) {
$row = mysql_fetch_array($rec);
$id = $row["token_id"];
} else {
$sql = "INSERT INTO tokens SET token='$token'";
$rec = mysql_query($sql);
$id = mysql_insert_id();
}
echo $id;
exit;
}
function getNewToken($q) {
$sql = "SELECT max(token_id) as token_id FROM tokens";
$rec = mysql_query($sql);
$row = mysql_fetch_array($rec);
$maxToken = $row["token_id"];
$newToken = $maxToken + 1;
$newItem = array();
$new = new stdClass();
$new->id = "0";
$new->name = $q;
$newItem[] = $new;
return $newItem;
}
?>
token.php
<?php
if(isset($_GET["q"])) {
$q = trim($_GET["q"]);
$isSearchItemExists = false;
$sql = sprintf("SELECT token_id, token from tokens WHERE token LIKE '%%%s%%' ORDER BY popularity DESC LIMIT 10", mysql_real_escape_string($q));
$rec = mysql_query($sql);
$arr = array();
while($row = mysql_fetch_array($rec)) {
$obj = new stdClass();
$obj->id = $row["token_id"];
$obj->name = $row["token"];
if($obj->name==$q) {
$isSearchItemExists = true;
}
$arr[] = $obj;
}
if(!$isSearchItemExists) $arr = array_merge(getNewToken($q),$arr);
$json_response = json_encode($arr);
echo $json_response;
} else if(isset($_GET["action"]) && $_GET["action"]=="newtoken") {
$token = strtolower($_REQUEST["name"]);
$sql = "SELECT * FROM tokens WHERE token='$token'";
$rec = mysql_query($sql);
$numRows = mysql_num_rows($rec);
if($numRows>0) {
$row = mysql_fetch_array($rec);
$id = $row["token_id"];
} else {
$sql = "INSERT INTO tokens SET token='$token'";
$rec = mysql_query($sql);
$id = mysql_insert_id();
}
echo $id;
exit;
}
function getNewToken($q) {
$sql = "SELECT max(token_id) as token_id FROM tokens";
$rec = mysql_query($sql);
$row = mysql_fetch_array($rec);
$maxToken = $row["token_id"];
$newToken = $maxToken + 1;
$newItem = array();
$new = new stdClass();
$new->id = "0";
$new->name = $q;
$newItem[] = $new;
return $newItem;
}
?>