2013-03-15 4 views
0

내 코드가 아래 있습니다. id = content를 mr 함수에 보내려고합니다. 그리고이 결과를 전달 된 id = result에 씁니다.이 html 파일에 대해서만이 함수를 사용할 수 있도록 다른 HTML 페이지에서도이 함수를 사용할 수 있도록하고이 함수를 다른 util.js 파일에 추가하려고합니다. this.It은 아약스의 게시물과 작업을 얻을처럼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> 

함수 씨는 다음과 같습니다

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

당신이 보낼 않습니다

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

이 ID를 보내려면 :

입력 객체를 값,하지를 보내려면? 신분증이나 내용? 당신은 둘 다 제안하는 것 같습니다. 또는 어쩌면 나는 그것을 잘못 읽고있다. –

+0

"onclick"속성 값에 "javascript :"가 필요하지 않습니다. – Pointy

+0

@thesystem 가치를 보내고 싶습니다. – ntf

답변

0

이 때문에이 라인의 : 당신이 그것을 대신 실제 <input> 요소를 보내는

var vars = "content=" +content; 

값 또는 ID를합니다. 위의 주석 처리 된 줄이 올바른 위치에있었습니다.

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

나는 당신이 의미하는 것을 이해할 수 없었다. 나는 var vars = "content ="+ content; 콘텐츠 값을 PHP 파일로 보냅니다. – ntf

+0

네,하지만 위의 줄은 'content'가 실제 입력 된 객체를 나타내는 것이지 값이 아니라는 것을 주석 처리했습니다. – jmoerdyk

+0

그것은 작동합니다. 그러나 id = result는 여전히 작동하지 않습니다. – ntf

관련 문제