我有类别的jquery自动完成功能,当一个人用鼠标点击它时,它会发送到带有该值的php页面并报告一个页面。这很好用。
但是我希望用它发送类别。
这是最初的部分..
$( "#tipapp" ).catcomplete({
delay: 0,
source: data,
select: function(event, ui) {
$("input#tipapp").val(ui.item.label);
$("#tipapp").submit();
},
}).data("catcomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.catcomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
和php的提要:
$("#tipapp").submit(function() {
$('#output').load('resultapp.php', {value: $(this).val()});
});
从我读到的,我以为我可以简单地添加到php行:
$('#output').load('resultapp.php', {value: $(this).val(), cat: item.category});
但没有运气,我也改变了
select: function(event, ui, item) {
$("input#tipapp").cat(ui.item.category);
当然,没有运气。有大量页面使用自动完成和表单等,但这是针对类别的。
我在这里错过了一些简单的东西吗?我可以在项目上找到一个查找以获取我正在调用的php文件中的类别,但如果它是一个简单的修复,那么它将保存一些代码和额外的数据库调用。
答案 0 :(得分:0)
ui.item.category
确实应该包含项目的类别值。问题是ui
对象可能在最终submit()
处理程序的范围内未定义。
为了解决这个问题,您可以在调用处理程序之前将类别值存储在input元素的数据中,如下所示:
select: function(event, ui) {
$("input#tipapp").val(ui.item.label).data('category',ui.item.category);
$("#tipapp").submit();
}
然后在处理程序中,您可以从input元素的数据中检索类别值,如下所示:
$("#tipapp").submit(function() {
$('#output').load('resultapp.php', {value: $(this).val(), cat:$(this).data('category')});
});