这是我的代码:
comenzar = function(){
document.getElementById('gene').onclick = xmlhttpPost("generador.php");
}
xmlhttpPost = function(strURL){
xmlHttpReq = false;
self = this;
self.xmlHttpReq = new XMLHttpRequest();
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function(){
if(self.xmlHttpReq.readyState == 4){
update(self.xmlHttpReq.responseText);
}
}
self.xmlHttpReq.send(getquerystring());
}
getquerystring = function(){
form = document.getElementById('formu');
combi = document.getElementById('sele').options[document.getElementById('sele').selectedIndex].value;
qstr = "tres=" + escape(combi);
return qstr;
}
update = function(resu){
document.getElementById('tag').innerHTML = resu;
}
window.onload = comenzar;
</script>
</head>
<body>
<form id=formu>
<select id=sele>
<option>C</option>
<option>v</option>
</select>
<button id=gene><p>generate</p></button>
</form>
<p id=tag></p>
</body>
</html>
//generador.php
<?php
echo( "tu combinacion" . $_POST['tres'] );
?>
答案 0 :(得分:1)
问题不在于获得价值,钩子是这两件事:
document.getElementById('gene').onclick = xmlhttpPost("generador.php");
...你可能会认为,你将某些东西设置为按钮的onclick-Event,但是你没有。 此功能将立即执行,而不是单击执行。
你应该这样写:
document.getElementById('gene').onclick = function(){xmlhttpPost("generador.php");}
另一个问题:
<button>
的默认类型是提交,因此如果您点击该按钮,则会发送表单。
您可以将按钮类型设置为“按钮”或取消通过javascript提交表单,否则您的AJAX请求无效,因为表单将被发送(并且页面重新加载)