For循环中的Ajax调用

时间:2012-11-20 02:07:00

标签: ajax for-loop

我有一个考试(明天),涵盖html,javascript,ajax,php,mysql和apache。我一直在检查以前的考试,其中一个问题是为显示订单表单的程序编写代码,但我坚持使用Ajax来保持总(价格)框更新为产品是订购的。

我有它工作,但只有输入一次金额。在我的解决方案中,如果有人去了并改变了数量(比如从1到3)那么它将增加3个该产品的价格显然不是理想的解决方案。我意识到需要添加循环,但经过几个小时的尝试后,我无法正常工作。我意识到这个确切的问题不会出现在考试中,但我想先了解它,因为会有类似的东西。

在实际的html代码中,根据数据库中的内容动态创建表单。生成的文本框使用产品的ID作为文本框ID,名称为amt [],以便可以将这些文件发送到getTotal.php以计算成本。

这是在文本框的onchange上激活的javascript / ajax:

function getAmt(txtBox){ //in solution won't need to use this text box

    var xhr = new XMLHttpRequest();
    var id = txtBox.id; //id from the textbox - in solution won't need these two
    var amt = txtBox.val; //value that has been typed into the textbox

    var total = document.getElementById("total").value; //get current total value

    xhr.onreadystate = function(){

        if(xhr.readyState==4 && xhr.status == 200)
        {
              var result = xhr.responseText;
              document.getElementById("total").value = result;//place new total in form
        }

    }
    xhr.open("GET", "getTotal.php?amt="+amt+"&id="+id+"&tot="+tot);
    xht.send(null);
}

为了获得我想要的东西,而不是使用当前总数而只使用当前文本框,每次都有一个更改来处理每个文本框并用新总数覆盖总数。 要做到这一点,我没有传递txtBox值,因为我需要遍历所有id& s&来自amt []

的值

此代码执行此操作:

var arrayAmt = document.getElementsByName("amt[]");
var id;
var amt;
for(i=0; i<arrayAmt.length; i++)
{
    id = arrayAmt[i].id;
    amt = arrayAmt[i].value;
}

我只是被困在哪里放置for循环,或者ajax调用的哪一部分进入循环。

我昨天尝试了很多不同的格式,并且失去了大量的学习时间。

我真的很感激有关如何使这项工作的任何建议

(不能使用其他任何东西,比如jQuery)

干杯

0 个答案:

没有答案