我想使用javascript来计算值,而无需按下提交按钮。使用javascript onkeyup事件。 是否可以将html表单中的2个或更多值发送到javascript函数?
这是在表格上加载必要细节的代码:
echo "<input type=\"hidden\" name=\"ids[]\" value=\"$id\">";
echo "<input type=\"hidden\" name=\"qoh[]\" value=\"$qtyhand\">";
echo "<td><input type=\"text\" name=\"qbuys[]\" id=\"qbuys\" value=\"$qtytbuy\" onKeyUp=\"proc(this.value)\"></td>";
我尝试过(我只做了),但没有用,这样做的正确方法是什么,是否可能?:
onKeyUp=\"proc(this.value && document.cartform.qbuys[].value);\"
这是javascript,它充当表单和php文件之间的中介,用于计算小计:
function proc(str,str2)
{
if (str=="")
{
document.getElementById("compz").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("compz").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","compz.php?qbuys="+str&prodid="+str2,true);
xmlhttp.send();
}
虽然我不确定它是否有效,但因为我之前只使用了1个参数。
答案 0 :(得分:1)
首先,我会recommend using jQuery而不是滚动你自己的AJAX界面。它经过互联网巨头的试用和测试。以下是适用于您的结构的jQuery文档的简单示例:
$('#compz').load('some_page.php');
该行会将“some_page.php”返回的任何内容加载到“compz”DIV中。所以让我们重新编写你的函数:
proc = function(str1) {
var str2 = $('#FormVariableThatContainsProdID').value;
$('#compz').load('compz.php?qbuys=' + str1 + '&prodid=' + str2);
}
这样你的PHP保持不变。
答案 1 :(得分:0)
逗号分隔函数参数。
onKeyUp=\"proc(this.value, document.cartform.qbuys[].value);\"