Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在javascript中创建数组函数时遇到了一个问题_Javascript_Arrays_Variables_Shopping Cart - Fatal编程技术网

我在javascript中创建数组函数时遇到了一个问题

我在javascript中创建数组函数时遇到了一个问题,javascript,arrays,variables,shopping-cart,Javascript,Arrays,Variables,Shopping Cart,我制作了一个简单的购物车,你可以从下拉列表中选择数量,然后添加这些数字,得到所有产品的总数和产品本身的总数 但是我想让它写下数量,价格和名称,并写在网站上的一个div中,这样用户就很容易看到他添加了一个产品。我通过一个接一个地添加乘积来完成计算部分,因为我没有排列它们。但对于下一部分,我只是没有找到一种适合我需要的方法。这只是来自我的测试页面,所以我只有几个值,但在另一个页面中,我列出了70多个值,如下所示: <div id="radioAlert"> <script type

我制作了一个简单的购物车,你可以从下拉列表中选择数量,然后添加这些数字,得到所有产品的总数和产品本身的总数

但是我想让它写下数量,价格和名称,并写在网站上的一个div中,这样用户就很容易看到他添加了一个产品。我通过一个接一个地添加乘积来完成计算部分,因为我没有排列它们。但对于下一部分,我只是没有找到一种适合我需要的方法。这只是来自我的测试页面,所以我只有几个值,但在另一个页面中,我列出了70多个值,如下所示:

<div id="radioAlert">
<script type="text/javascript">
//calculator
function updatesum() {
document.form.sum.value =
(document.form.sum0.value -0) *99 +
(document.form.sum1.value -0) *99 +
(document.form.sum2.value -0) *99;

document.form.smu.value =
(document.form.prod0.value -0)*99  +
(document.form.prod1.value -0) *99 +
(document.form.prod2.value -0) *99 +
(document.form.prod3.value -0) *99 +
(document.form.prod4.value -0) *99;
document.form.totalsum.value =
(document.form.sum.value -0) +
(document.form.smu.value -0); //not a typo i was just lazy with the name

//arrays

//This one i did not get to work.
var myArray = newArray();
myArray[0]=document.form.sum2.value;
myArray[1]=document.form.prod0.value;
myArray[2]=document.form.prod1.value;
myArray[3]=document.form.prod2.value;
myArray[4]=document.form.prod3.value;
myArray[5]=document.form.prod4.value;

for (var i = 0; i < myArray.length; i++) {
        alert(myArray[i]);
}


//this part works but i want it to add its value only once and then replace its value if its updated again, if its 0 i want it to be completely removed.

var prod1 = document.form.sum2.value;
var prod2 = document.form.sum1.value;

var radioAlert = document.getElementById("radioAlert");
var radioAlert2 = document.getElementById("radioAlert"); 

if  (document.form.sum2.value>0) {
//document.write("pilotjakke pelsforet small  " +   prod1 + "  stk");
radioAlert.innerHTML += ("pilotjakke pelsforet small  " +   prod1 + "  stk");
alert("pilotjakke pelsforet medium  " +   prod1 + "  stk");
}

if  (document.form.sum1.value>0) {
//document.write("pilotjakke pelsforet small  " +   prod1 + "  stk");
radioAlert2.innerHTML += ("pilotjakke pelsforet medium  " +   prod2 + "  stk");

}
}
</script>
</div>

//计算器
函数updatesum(){
文件、表格、总和、价值=
(document.form.sum0.value-0)*99+
(document.form.sum1.value-0)*99+
(document.form.sum2.value-0)*99;
document.form.smu.value=
(document.form.prod0.value-0)*99+
(document.form.prod1.value-0)*99+
(document.form.prod2.value-0)*99+
(document.form.prod3.value-0)*99+
(document.form.prod4.value-0)*99;
document.form.totalsum.value=
(document.form.sum.value-0)+
(document.form.smu.value-0);//不是打字错误,我只是懒得用这个名字
//阵列
//这一次我没有去上班。
var myArray=newArray();
myArray[0]=document.form.sum2.value;
myArray[1]=document.form.prod0.value;
myArray[2]=document.form.prod1.value;
myArray[3]=document.form.prod2.value;
myArray[4]=document.form.prod3.value;
myArray[5]=document.form.prod4.value;
对于(var i=0;i0){
//文件编写(“pilotjakke pelsforet small”+prod1+“stk”);
radioAlert.innerHTML+=(“pilotjakke pelsforet small”+prod1+“stk”);
警报(“pilotjakke-pelsforet中型”+prod1+“stk”);
}
if(document.form.sum1.value>0){
//文件编写(“pilotjakke pelsforet small”+prod1+“stk”);
radioAlert2.innerHTML+=(“pilotjakke-pelsforet中码”+prod2+“stk”);
}
}

默认情况下,JavaScript中没有
newArray
函数

改变

var myArray = newArray();

通常首选使用
[]
的表单。除了更加简洁之外,它不受重新定义
数组
构造函数的影响

请注意,如果愿意,也可以使用元素初始化数组:

var myArray = [
    document.form.sum2.value,
    document.form.prod0.value,
    document.form.prod1.value,
    document.form.prod2.value,
    document.form.prod3.value,
    document.form.prod4.value
];

很难说出你在问什么,你能清楚地说出你在问题的某个地方遇到的问题吗?是的,很抱歉。如果您选择“product 1”并从下拉列表中选择一个数字,我希望它被写在“product1 small(quantity)”页面上,我目前管理的方式只适用于一个变量,它或者覆盖了前面的语句,这是正常的,但是当我有第二个变量在其中时,它们会相互覆盖,要么是这样,要么就是不精确地添加,所以我想制作一个数组,这样就可以处理多个变量(例如prod1,prod2…),谢谢,这很有意义!但是我仍然有一个问题,循环每次检查值是否超过或等于它将某些内容写入特定位置的值。当我使用
for(i=0;i@Tommy:如果您在某个地方声明了
i
,那么在数组中循环的代码就可以了。请注意,您不能使用
文档。请在加载页面后写入
(它会生成一个隐式
文档。打开
,清除页面上的所有内容).Crowder提出了一个愚蠢的问题,但我应该在哪里/如何声明“i”?是的,我会使用innerHTML,但奇怪的是,我尝试了文档中的一些脚本。write实际上在页面上起作用:s@Tommy:通过
var i
在使用它的函数中声明
i
。有关这一点的重要性的更多信息,请参阅我的博客文章。Re
document.write
,只要它在页面加载期间使用,而不是在加载之后使用,它大部分都会按照您的预期工作。不过,最好避免它。仍然无法使它工作:/n这部分有什么问题吗?还是它在其他地方有什么问题?(我在没有工作的情况下尝试了Alert命令)
var radioAlert=document.getElementById(“radioAlert”);var i;var myArray=[document.form.sum2.value,document.form.prod0.value,document.form.prod1.value,document.form.prod2.value,document.form.prod3.value,document.form.prod4.value];for(i=0;i”);}
var myArray = new Array();
// Note space ---^
var myArray = [
    document.form.sum2.value,
    document.form.prod0.value,
    document.form.prod1.value,
    document.form.prod2.value,
    document.form.prod3.value,
    document.form.prod4.value
];