打开PHP而不破坏JavaScript循环

时间:2014-06-01 09:52:25

标签: javascript php loops for-loop break

如果用户进行了任何更改,我正在迭代表的值以修改它们。

目前我有类似的东西:

for (var i = 0; i < rows.length - 1; i++) {
    if (item[5]) {
        window.open("modify.php?id=" + id + "&delete=true");
    }
}

我的问题是如何在不破坏for循环的情况下连接到我的modify.php文件。我试过

window.location("modify.php?id=" + id + "&delete=true");

但也是如此。

我考虑过使用window.open并将新的windows维度设置为非常小的东西,因此它看起来是隐藏的,并在PHP完成执行后再次关闭它。

然而,这看起来非常愚蠢,为什么我想知道更好的方法是什么?

2 个答案:

答案 0 :(得分:0)

与任何其他代码一样,为什么不简单地复制说明以供以后使用?

var openItems = [], i;

for (i = 0; i < rows.length - 1; i++) {
    if (item[5]) {
        openItems.push(id); // Don't open the window just yet, just copy to array
    }
}

for (i = 0; i < openItems.length; i++) {
    window.open("modify.php?id=" + openItems[i] + "&delete=true");
}

如果您认为您只打开一个窗口(并且您想要第一个项目),那么只需执行以下操作:

var openID, i;

for (i = 0; i < rows.length - 1; i++) {
    if (item[5]) {
        openID = i;
        break; // No need to continue iterations
    }
}

if (openID) {
    window.open("modify.php?id=" + openID + "&delete=true");
}

如果您希望最后一项是您打开的项目,只需删除break;语句。

答案 1 :(得分:0)

听起来你想在这里使用AJAX。为了简洁起见,我将使用jQuery.ajax向您展示我的意思:

for (var i = 0; i < rows.length - 1; i++) {
    if (item[5]) {
        $.ajax("modify.php?id=" + id + "&delete=true");
    }
}

这会向提供的URL发送异步HTTP GET请求。

AJAX也可以在vanilla JavaScript中完成,但出于方便和兼容性的原因,我建议使用库。