2013-03-15 118 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

相關問題