在ajax中使用post方法发送数据

时间:2014-03-07 08:56:19

标签: php ajax

我有一个带有隐藏字段的表单,并希望将值发送到另一个php页面处理请求并将其显示在div标记内。但是,AJAX似乎没有发布隐藏的字段值 下面是我的表格和ajax代码

<form name='cc' method='post' onsubmit='return disp()'>
<input name='id' type='hidden' value='" . $id. "'/>
<input type='submit' name='btnr' value='Display' />
 </form>
 <script>
function disp(){
    var xmlhttp;    

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        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("display").innerHTML=xmlhttp.responseText;
        }
    }
    var id=document.forms["cc"]["id"].value;
    xmlhttp.open("POST","fetch.php",true);

    xmlhttp.send(id);
}
</script>

1 个答案:

答案 0 :(得分:0)

应该是:

xmlhttp.send('id=' + urlencode(id));

您需要包含表单元素名称,以便PHP可以将其放在$_POST

您还需要将return false;放在disp()的末尾,以防止正常的表单提交,这将重新加载页面。