0

我正在开发一个需要 Ajax 从数据库中获取数据并更新页面的小项目。对数据库的查询由用户动态构建,查询字符串像链一样构建。例如,链的第一项影响下一项和下一项,依此类推。因此,它创建了一个我无法提前“知道”的帖子变量列表。我认为这将是一件非常简单的事情,但事实证明并非如此。这是我的问题。

当我使用 .changed 事件并尝试在发布表单之前对其进行序列化。我得到的只是空字符串。我注意到,如果我对 post 变量进行硬编码,一切都会正常工作。有什么我想念的吗?.changed 没有序列化方法吗?

我也在使用 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 />
4

2 回答 2

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;

        }
    });
});
于 2013-03-13T16:53:28.457 回答
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 请求?

于 2013-03-13T16:37:56.877 回答