可能重复:
JavaScript post request like a form submit通行证JavaScript变量PHP POST
我在JS计算出的值,我想作为输入形式的一部分传递给一个PHP脚本。我怎样才能将JS的值作为POST参数获得值?
基本上,在提交时,我需要将total
var通过邮寄传递给下一个脚本。
想到的第一个想法是创建一个无形的输入表单,它具有值并且与表单一起输入,这有可能吗?
可能重复:
JavaScript post request like a form submit通行证JavaScript变量PHP POST
我在JS计算出的值,我想作为输入形式的一部分传递给一个PHP脚本。我怎样才能将JS的值作为POST参数获得值?
基本上,在提交时,我需要将total
var通过邮寄传递给下一个脚本。
想到的第一个想法是创建一个无形的输入表单,它具有值并且与表单一起输入,这有可能吗?
是的,您可以使用<input type="hidden" />
并在javascript代码中设置该隐藏字段的值,以便与其他表单数据一起发布。
只要确保隐藏文本框位于表单标签内。 – javram 2012-03-27 01:38:19
您对隐藏表单元素的想法很扎实。像这样的东西
<form action="script.php" method="post">
<input type="hidden" name="total" id="total">
</form>
<script type="text/javascript">
var element = document.getElementById("total");
element.value = getTotalFromSomewhere;
element.form.submit();
</script>
当然,这将改变位置为script.php
。如果你想对用户隐形地做到这一点,你会想要使用AJAX。这里有一个jQuery示例(为简洁起见)。没有形式或隐藏的输入要求
$.post("script.php", { total: getTotalFromSomewhere });
您可以使用Ajax做到这一点。我有一个功能,我用这样的东西:
function ajax(elementID,filename,str,post)
{
var ajax;
if (window.XMLHttpRequest)
{
ajax=new XMLHttpRequest();//IE7+, Firefox, Chrome, Opera, Safari
}
else if (ActiveXObject("Microsoft.XMLHTTP"))
{
ajax=new ActiveXObject("Microsoft.XMLHTTP");//IE6/5
}
else if (ActiveXObject("Msxml2.XMLHTTP"))
{
ajax=new ActiveXObject("Msxml2.XMLHTTP");//other
}
else
{
alert("Error: Your browser does not support AJAX.");
return false;
}
ajax.onreadystatechange=function()
{
if (ajax.readyState==4&&ajax.status==200)
{
document.getElementById(elementID).innerHTML=ajax.responseText;
}
}
if (post==false)
{
ajax.open("GET",filename+str,true);
ajax.send(null);
}
else
{
ajax.open("POST",filename,true);
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.send(str);
}
return ajax;
}
第一个参数是你想改变的元素。第二个参数是要加载到要更改的元素中的文件名的名称。第三个参数是您正在使用的GET或POST数据,例如“total = 10000 & othernumber = 999”。如果你想使用POST,最后一个参数是true;如果你想使用,则最后一个参数是false。
有很多方法可以做到这一点。关于你问的方式,隐藏的表单元素。
表单中创建这种形式元素:
<input type="hidden" name="total" value="">
所以你的形式是这样的:
<form id="sampleForm" name="sampleForm" method="post" action="phpscript.php">
<input type="hidden" name="total" id="total" value="">
<a href="#" onclick="setValue();">Click to submit</a>
</form>
那么你的JavaScript是这样的:
<script>
function setValue(){
document.sampleForm.total.value = 100;
document.forms["sampleForm"].submit();
}
</script>
看到这个:HTTP: //stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit – 2012-03-27 01:37:04