我正在使用James Smith的优秀tokenized input插件来搜索各种搜索框。 (PHP后端。)我试图预先填充输入,但只是在某些时候 - 例如,如果用户已经通过我的URL参数。
正常初始化:
$("#tokenized").tokenInput("http://www.my.url/index.php", {
theme: "facebook",
});
根据需要,这启动了一个空白框,一切都很好。
使用漂亮的prePopulate参数:
$("#tokenized").tokenInput("http://www.my.url/index.php", {
theme: "facebook",
prePopulate: [<?php echo json_encode($initialValue); ?>]
});
$ initialValue是一个带有'id'和'name'的数组。当它被设置为某种东西时,这也很有效。但那是我的问题 - 只有部分时间会被设定。我试过发送一个零元素数组和一个空值的数组。将数组设置为null会产生预期的未捕获异常。如果它是其中之一,则框拒绝不预填充 - 为'undefined'或'{space}'创建条目。我希望它是空的,就像上面的第一个例子。
如果我的初始值设置了,我怎么能告诉我的页面只预先填充?我可以对初始化进行内联的if()条件吗?
此外,jQuery初学者 - 如上所述,仍然使用'php echo'来获取我的价值。有没有更好的办法?
谢谢!
答案 0 :(得分:1)
echo
完全没问题。试试这个:
$("#tokenized").tokenInput("http://www.my.url/index.php", {
theme: "facebook"
<?php if($initialValue){ ?>, prePopulate: [<?php echo json_encode($initialValue); ?>]<?php } ?>
});
如果设置了prePopulate
,则只会添加initialValue
参数。