Ajax请求引用



我正在尝试使用原型框架发送Ajax请求,该框架在成功时向我的表(现有)添加新行。我已经成功地请求了其他功能,但我不能让这个工作。我确信它与我在插入html中的引号(嵌套引号)有关。

这个问题帮助我解决了上一个函数的问题,但在这个函数中,引号仍然更复杂。

这是一个关于插入html 的线程
new Ajax.Request('switch.php', {
    method: 'post',
    postBody: 'action=addHour&addday=' + addday + '&addhour=' + addhour + '&addminute=' + addminute + '',
    onSuccess: ($('tbl_' + addday + '').down('tr').insert({
        Bottom: "<TR ALIGN=LEFT VALIGN=TOP><TD id='var_" + adday + "" + addhour + "" + addminute + "' value='" + addhour ":" + addminute + "'></TD><TD id='del_" + adday + "" + addhour + "" + addminute + "'><input type='button' value='Del' onClick='deleteHour(" + addhour + "" + addminute + ", " + addday + ")'></TD></TR>"
    }))
});

我对web开发很陌生,如果有人能给我指出正确的方向(一些关于报价顺序的解释),那将帮助很大,

thx,

m .

Pumbaa关于onSuccess回调是正确的;它必须是一个函数。在表单元素中包装输入字段是一个很好的做法。我看到你试图通过在'add'变量之间放一个空字符串来做什么,但如果你先让它们成为字符串,你就不必这样做了。这稍微简化了您的代码。我重写了你的代码,使它更容易读。

new Ajax.Request('switch.php', {
    method: 'post',
    parameters: {
        action: "addHour",
        addday: addday,
        addhour: addhour,
        addminute: addminute
    },
    onSuccess: function(e) {
        addday = addday.toString();
        addhour = addhour.toString();
        addminute = addminute.toString();
        $('tbl_' + addday).down('tr').insert({bottom: '<TR ALIGN=LEFT VALIGN=TOP>
          <TD id="var_"' + addday + addhour + addminute + '" value="' + addhour + ":" + addminute + '"></TD>
          <TD id="del_"' + addday + addhour + addminute + '">
            <form>
              <input type="button" value="Del" onClick="deleteHour(' + addhour + addminute + ', ' + addday + ')">
            </form>
          </TD>
        </TR>'});
    }
});

您的onSuccess值应该是function。实际上,这里传递的是函数调用的结果。你的代码相当于

var os = ($('tbl_' + addday + '').down('tr').insert({
    Bottom: "<TR ALIGN=LEFT VALIGN=TOP><TD id='var_" + adday + "" + addhour + "" + addminute + "' value='" + addhour ":" + addminute + "'></TD><TD id='del_" + adday + "" + addhour + "" + addminute + "'><input type='button' value='Del' onClick='deleteHour(" + addhour + "" + addminute + ", " + addday + ")'></TD></TR>"
}));
new Ajax.Request('switch.php', {
    method: 'post',
    postBody: 'action=addHour&addday=' + addday + '&addhour=' + addhour + '&addminute=' + addminute + '',
    onSuccess: os
});
那不是你想要的。你可能想要这样:
var os = function () {
    $('tbl_' + addday + '').down('tr').insert({
        Bottom: "<TR ALIGN=LEFT VALIGN=TOP><TD id='var_" + adday + "" + addhour + "" + addminute + "' value='" + addhour ":" + addminute + "'></TD><TD id='del_" + adday + "" + addhour + "" + addminute + "'><input type='button' value='Del' onClick='deleteHour(" + addhour + "" + addminute + ", " + addday + ")'></TD></TR>"
    });
};
new Ajax.Request('switch.php', {
    method: 'post',
    postBody: 'action=addHour&addday=' + addday + '&addhour=' + addhour + '&addminute=' + addminute + '',
    onSuccess: os
});

或直接:

new Ajax.Request('switch.php', {
    method: 'post',
    postBody: 'action=addHour&addday=' + addday + '&addhour=' + addhour + '&addminute=' + addminute + '',
    onSuccess: function () {
       $( // etc...
    }
});

最新更新