我正在开发一个小项目,需要Ajax从数据库中获取数据并更新页面。对数据库的查询由用户即时构建,查询字符串构建为链。因此,例如,链的第一项影响下一个和下一个,依此类推。因此,它会创建一个我无法提前“知道”的帖子变量列表。我认为这将是一个非常简单的事情,但它证明不是。这是我的问题。
当我使用.changed事件并尝试在发布之前对表单进行seralize时。我只得到空弦。我注意到如果我对post变量进行硬编码,一切正常。有什么我想念的吗? .changed没有seralize方法吗?
我也在使用CURL桥,因为带有数据的服务器在另一个域上。我不认为这会引起任何问题。我相信这与我的活动选择有关。
以下是代码:
$('#selector').change(function() {
$.ajax({
type: "post",
dataType: 'json',
url: "/pages/curlbridge.php",
data: $("#queryform").serialize(), //"select=all&date=2013"
success: function(data)
{
console.log(data);
var resultset = data;
}
});
被要求附加HTML。这只是一个简单的表格
<form id="selector">
Select: <input type="text" id="select" />
Date: <input type="text" id="date" />
</form>
<br />
答案 0 :(得分:1)
我同意@ m1ket的#queryform不存在,虽然您不能在单个输入元素上使用serialize(),因此以下行不正确:
data: $(this).serialize(), //"select=all&date=2013"
也许你能做的就是这个(它以#selector所属的形式获取所有数据):
data: $(this).closest('form').serialize(), //"select=all&date=2013"
修改强>
我的不好,我没注意原始问题中发布的HTML
范围问题可能吗?这有用吗:
$('#selector').change(function() {
var formData = $(this).serialize();
$.ajax({
type: "post",
dataType: 'json',
url: "/pages/curlbridge.php",
data: formData, //"select=all&date=2013"
success: function(data)
{
console.log(data);
var resultset = data;
}
});
});
答案 1 :(得分:0)
$(“#queryform”)不存在。你的jQuery应该是这样的:
$('#selector').change(function() {
$.ajax({
type: "post",
dataType: 'json',
url: "/pages/curlbridge.php",
data: $(this).serialize(), //"select=all&date=2013"
success: function(data)
{
console.log(data);
var resultset = data;
}
});
});
另外,你是否使用.change(),因为你想在每次用户输入密钥时提交AJAX请求?