2013-03-15 70 views
0

我的代码在下面。我想发送id = content到函数mr。然后将结果写入通过的id = result.Although虽然只是为了这个html文件,但我想让这个函数可用于其他html页面,并且希望在另一个util.js文件中添加此函数。有没有办法将html id属性发送给函数?

Add Item: 
     <input type="text" name="name" id="content"> 
     <br> 
     <button onclick="javascript:mr('POST',content,result,'post.php');"  
type="button"  

id="btn1"> 
      Submit 
     </button> 
<br> 
     <button onclick="javascript:mr('GET',content,result,'get.php');" type="button"  

id="btn2" > 
      List Jobs 
     </button> 
     <div id="result"></div> 

功能先生就像是this.It是阿贾克斯后,让操作:

function mr(type,content,result,URL) { 

      var hr = new XMLHttpRequest(); 


      //var content = document.getElementById("content").value; 
      var vars = "content=" +content; 

      if (type == 'GET') 
       URL = URL + '?' + vars; 


      hr.onreadystatechange = function() { 
       if (hr.readyState == 4 && hr.status == 200) { 
        var return_data = hr.responseText; 
        document.getElementById("result").innerHTML = return_data; 
       } 

      } 

      hr.open(type, URL, true); 


      hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

      switch(type) { 
       case 'GET': 
        hr.send(); 
        break; 
       case 'POST': 
        hr.send(vars); 
        break; 
      } 

      document.getElementById("result").innerHTML = "Processing..."; 

     } 
    </script> 

post.php中

<?php echo "POST\n"; if(isset($_POST)) print_r($_POST); ?> 

get.php

<?php echo "GET\n"; if(isset($_GET)) print_r($_GET); ?> 

当我点击提交时,我得到了以下输出。

POST Array ([content] => [object HTMLInputElement]) 

,点击列表按钮输出:

GET Array ([content] => [object HTMLInputElement]) 
+0

你要什么派?该ID或内容?你似乎暗示了两者。或者,也许我在误读它。 – 2013-03-15 16:24:21

+0

“onclick”属性值中不需要“javascript:”。 – Pointy 2013-03-15 16:27:58

+0

@thesystem我想发送价值。 – ntf 2013-03-15 16:31:05

回答

0

这是因为这行:

var vars = "content=" +content; 

你要发送的实际<input>元素,而不是它的价值或ID。你在正确的轨道上,注释掉了它。

要发送的值,而不是输入对象:

var content = document.getElementById("content"); 
var vars = "content=" + content.value; 

要发送的ID:

var content = document.getElementById("content"); 
var vars = "content=" + content.id; 
+0

我无法理解你的意思。我必须包括var vars =“content =”+ content;将内容值发送到php文件。 – ntf 2013-03-15 16:33:25

+0

是的,但是在上面的行中注释了“内容”是指实际的输入对象,而不是它的值。 – jmoerdyk 2013-03-15 16:34:49

+0

它works.But id =结果仍然不起作用。 – ntf 2013-03-15 17:22:01

相关问题