AJAX를 사용하는 웹 페이지를 작성하여 텍스트 필드에 데이터를 입력하고 "확인"상자를 클릭 한 다음 데이터를 데이터베이스에 저장하고 " 텍스트 필드와 "OK"버튼을 포함하는 영역을 입력 된 데이터를 기반으로 다른 데이터와 함께 다시로드하십시오. 지금 작동으로, 프로세스는 첫 번째 항목에서 잘 작동하지만 다시 정보를 입력하려고하면 원래 값을 다시 입력 된 것처럼,이 동작 :
예 :ajax onclick 명령으로 오래된 데이터를 가져옴
사용자 입력 : 5
페이지 입력 인 것처럼 동작 : 5
사용자 입력 : 입력 인 것처럼 3
페이지의 동작 : 5
사용자 입력 : 입력 인 것처럼 4
페이지가 동작 5
때 페이지가 처음로드의이 지역은 이렇게 보입니다 (예, 비어 있습니다.) 페이지의 초기로드의 끝을로드하는 코드) : 자바 스크립트 함수 다음
가echo "<table>";
// ...Other stuff which I don't think is involved in the problem, though I've been wrong before...
echo "<tr>";
echo "<td>";
echo "<div id=\"measurements\">";
// Filled by javascript functions below
echo "</div>";
echo "</td>";
echo "</tr>";
echo "</table>";
가능하며 호출 될 때 페이지가로드 :
function measurementEntered(pid, vid, oid, varn, dat) {
// Create XMLHttpRequest object
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "ajax_measurements_update.php?varn="+varn+"&pid="+pid+"&vid="+vid+"&oid="+oid+"&dat"+dat+"&user="+user, false);
xmlhttp.send();
document.getElementById("measurements").innerHTML=xmlhttp.responseText;
}
그리고 ajax_measurements_update.php 페이지에는 데이터를 입력하고 영역을 새로 고치는 다음 코드가 포함되어 있습니다 (영역에 정보를 추가하는 코드가 있지만 문제를 일으키는 것으로 생각하지 않습니다). 당신이 의심되는 경우에, 나는) 더 게시 할 수 있습니다 :
echo "<input type=\"text\" id=\"Select4\" name=\"dat\" size=\"20\" />";
및
echo "<button type=\"button\" onclick=\"measurementEntered($pid, $vid, $oid, $varn, Select4.value);\" />OK</button>";
을 그래서이, "확인"버튼을 클릭시에, "Select4"텍스트 필드에서 데이터를 끌어해야하며, measurementEntered 함수를 호출하십시오. 그런 다음 measurementEntered 함수는 새 "OK4"텍스트 필드에서 데이터를 가져올 준비가 된 새 "OK"버튼으로 영역을 새로 고쳐야합니다. 그러나 다시 클릭하면 SelectE4의 원래 값으로 measurementEntered가 호출됩니다. 어떤 아이디어?
감사합니다.
아약스 요청/응답을 디버그하려고합니까? 어떤 데이터가 서버로 전송되며 어떤 데이터가 다시 나타 납니까? (파이어 폭스 또는 dev 버전 크롬에 방화 광을 사용하십시오 - 매우 유용한 도구입니다) –
방화 광은 놀랍습니다. – BCarpe
jQuery로 전환하여 프로그램을 작동시킬 수있었습니다. – BCarpe