2012-07-27 5 views
1

나는 새 질문을하고있다. 단순화 상황에 내가 의 index.php 파일아약스 코드 사용시 자바 스크립트 사용

<form name="f" action="index.php" method="post"> 
    <input type="button" name="but" id="but" value="Retrieve"> 
    <div id="div"></div> 
    <input type="submit" name="ok"> 
</form> 



<script type="text/javascript"> 
document.getElementById("but").onclick = function(){ 
    var http = false; 
    if (window.XMLHttpRequest){ 
     http = new XMLHttpRequest(); 
    } else { 
     http = new ActiveXObject("Microsoft.XMLHttp"); 
    } 
    if (http){ 
     http.open("POST","other.php",true); 
     http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     http.onreadystatechange = function(){ 
      if (http.status==200 && http.readyState==4){ 
       document.getElementById("div").innerHTML = http.responseText; 
      } 
     }; 
     http.send(null); 
    } 
}; 
document.getElementById("y").onclick = function(){ 
    alert("okaaay"); 
}; 
</script> 

에서이 스크립트를했습니다 그리고

<?php 
echo "<input type='text' name='y' id='y'>"; 
?> 

아약스 스크립트 아래의 스크립트 other.php 파일을 가지고는 좋은 작동하지만 내 문제 이 마크 된 입력 요소가 두 번째 JavaScript 코드로 index.php 페이지에서 검색 될 때 조작 할 수 없다는 것을 알려주세요. :)

답변

3

"y"를 설정하도록 코드를 변경하십시오. other.php의 응답이 돌아옵니다 후에과 같이, 클릭

http.onreadystatechange = function(){ 
     if (http.status==200 && http.readyState==4){ 
      document.getElementById("div").innerHTML = http.responseText; 
      document.getElementById("y").onclick = function(){ 
       alert("okaaay"); 
      }; 
     } 
    }; 

을, 그렇지 않으면 당신은 아직 :-) 난 당신이해야한다고 생각

0

존재하지 않는 요소에 해당 이벤트 핸들러를 설정하고, json으로 당신을 사용하여 당신의 원하는 속성을 제공 한 다음 (유형 응용 프로그램/JSON로)을받을 때 유형 input의 새로운 요소를 만들기 위해 자바 스크립트를 사용하여 다음

$response = json_encode(array('type'=>'text','name'=>'y','id'=>'y')); 
print $response; 

하고, 대신, 그냥 몇 가지 정보를 다시 보내 받았습니다. 변수를 만들고 변수에 저장하면 해당 요소를 div 내에 배치합니다.