我有一个带有隐藏字段的表单,并希望将值发送到另一个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>
答案 0 :(得分:0)
应该是:
xmlhttp.send('id=' + urlencode(id));
您需要包含表单元素名称,以便PHP可以将其放在$_POST
。
您还需要将return false;
放在disp()
的末尾,以防止正常的表单提交,这将重新加载页面。