将Javascript变量传递给PHP POST

可能重复:
JavaScript提交请求,如表单提交

我有一个计算在JS中的值,我想将它作为输入表单的一部分传递给PHP脚本。 我怎样才能将JS的值作为POST参数获得值?

基本上,在提交时,我需要将total变量通过邮件传递给下一个脚本。

想到的第一个想法是创建一个无形的输入表单,它具有其中的价值并与表单一起输入,这可能吗?


是的,您可以使用<input type="hidden" />并在JavaScript代码中设置该隐藏字段的值,以便将其与其他表单数据一起发布。


有很多方法可以实现这一点。 关于你问的方式,隐藏的表单元素。

在你的表单中创建这个表单元素:

<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>

你可以使用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。

链接地址: http://www.djcxy.com/p/21919.html

上一篇: Pass Javascript Variable to PHP POST

下一篇: Send POST data on redirect with JavaScript/jQuery?