Javascript函数不是从onchange调用的(并非总是如此)
Javascript function not being called from onchange (not always)
目前,我正在创建一个网站,其中我有一些数量有限的产品。此数量取决于大小和颜色。
因此,我想出了以下程序来检查并反馈还剩下多少。
<div class="product_stock" id="stock_form<?php echo $i; ?>"><?php
$size = $product_sizes[0];
$color = $product_colors[0];
$sql = "SELECT * FROM products WHERE product_id = '$product_id' AND size = '$size' AND color = '$color'";
$result = mysql_query($sql) or die(mysql_error());
echo $sql;
if(mysql_num_rows($result) > 0) {
$product_stock = mysql_fetch_array($result);
if($product_stock['stock'] > 0) {
echo "Nog ".$product_stock['stock']." verkrijgbaar";
} else {
echo "Combinatie is niet meer verkrijgbaar";
}
}?>
</div>
<div class="product_text">
<?php echo $product['text']; ?>
</div>
<div class="product_num">
art: #<?php echo $product['product_id']; ?>
</div>
<div class="product_bar_bot">
<form name="form<?php echo $i; ?>" action="shopping_cart.php?">
<input type="hidden" name="id" value="<?php echo $product['pid']; ?>"/>
<select name="size" class="product_select" onChange="get_stock('form<?php echo $i; ?>');">
<?php foreach($product_sizes as $p_size) { ?>
<option>
<?php echo $p_size; ?>
</option>
<?php } ?>
</select>
<select name="color" class="product_select" onChange="get_stock('form<?php echo $i; ?>');">
<?php foreach($product_colors as $p_color) { ?>
<option value="<?php echo $p_color; ?>">
<?php echo $color_array[$p_color]; ?>
</option>
<?php } ?>
</select>
<input type="hidden" name="url" value="sale">
<input type="hidden" name="action" value="add">
<input type="text" name="amount" value="1" size="1" style="vertical-align: top; margin-top: 9px;"></input>
<img src="images/icons/cart_shop.png" align="top"/>
<input type="submit" class="button" value="Voeg toe" style="vertical-align: top; margin-top: 7px;">
需要调用的函数:
function get_stock(formid) {
var form = document.forms[formid];
var size = form.size.value;
var color = form.color.value;
var pid = form.id.value;
var stock = 'stock_'+formid;
// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById(stock).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get_stock.php?id="+pid+"&size="+size+"&color="+color,true);
xmlhttp.send();
}
我遇到的问题是它确实适用于某些表单,但对于某些表单,甚至没有调用get_stock.php
页面。
如果需要更多信息,请随时询问。
由于@Bergi的评论,我犯了一个已经修复的小错误。我每次在$i处添加+1来创建表单,但是我在错误的位置重置了$i,例如,这导致了$i = 1中的多个。
相关文章:
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- onChange 函数更改表中显示的数据
- Javascript onchange()函数不起作用
- jQuery body onChange具有多个元素和多个函数
- 从javascript调用服务器端的下拉列表onchange函数
- 从Document调用onchange函数.已准备好从更新中预先选择的项目
- Javascript:OnChange事件,将数组变量传递给另一个函数
- InnerHTML 调用 JavaScript 函数 onchange.
- 在 onchange 上调用 2 个 JS 函数,并且都返回一些值
- 未捕获的引用错误:函数未使用 onchange 定义
- 如果onchange为true,如何运行函数
- 根据其他onchange函数来选择在onchange中运行哪个函数
- javascript onchange中的代码和函数中的相同代码有什么区别
- 表单提交onChange事件;不能使用JQuery函数
- 使用函数onChange
- 运行一个js函数onchange()
- 当多个字段中的任何字段发生更改时触发javascript函数(onchange)
- 如何从highchart事件中的html元素触发jquery函数onchange
- 在aggregator: pivottalbe.js上调用函数onchange事件
- 执行自定义函数onChange