views:

23

answers:

1

this is my code:

 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'] );
?>
A: 

The problem is not the getting of the value, the hook are these 2 things:

document.getElementById('gene').onclick = xmlhttpPost("generador.php");

...you may think, that you set something to be executed to the onclick-Event of the button, but you dont. This function will be executed immediately, not onclick.

You should write it that way:

document.getElementById('gene').onclick = function(){xmlhttpPost("generador.php");}

The other problem: the default type of a <button> is submit, so if you click on the button, the form will be sended. You can either set the type of the button to "button" or cancel the submitting of the form via javascript, otherwise your AJAX-Request is useless, because the form will be sended(and the page reloaded)

Dr.Molle
thanks a lot Dr. Molle, I really don't have too much time to read books and blogs to get to the solution for this, thats why I came here for a quick advise, I assure you that you'll be the first I'll show the application when I completed it