나는 AJAX, HTML 및 PHP를 모두 사용하여 사용자에게 끊김없는 경험을 제공하려고합니다. 변수를 PHP 폼에 전달하는 데 문제가 있습니다. 내가 AJAX를 이용한 첫 번째 실험처럼 쉬운 방법이 있는지 확신 할 수 없다. AJAX를 사용하여 PHP에 DOM 요소 값 전달
을 상세하게 설명하기 :<div class="block" id="articles"></div>
나는 세부 사항을로드하고 문서를로드,이 부문이있다. 이 부서의 내부에서 저는 사용자가 기사와 관련된 의견을 추가 할 수 있도록 노력하고 있습니다.
function viewDets(str) {
if(str == "") {
document.getElementById("articles").innerHTML = "";
return;
}
if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("articles").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "viewDets.php?q=" + str, true);
xmlhttp.send();
}
이되는 사용 후 다른 컨테이너를 추가 viewDets에 변수를 전달합니다
while($row = mysql_fetch_array($result)) {
$count++;
$taskComments = $row['Annotation'];
$userName = $row['Username'];
$timeStamp = $row['Time'];
echo "Comments";
echo "<p class=\"meta\">$count. $taskComments ($userName) -- $timeStamp</p>";
}
echo "</div></div></div></div></div></div>
<form name=\"inputCom\" method=\"get\">
<div class=\"four column\">
<div class=\"column_content\" id=\"commentInsert\">
<label>Enter Comment</label>
<input type=\"text\" id=\"comment\"value=\"\"></input>
<input type=\"hidden\" id=\"Uname\" value=\"$user\"></input>
<input type=\"hidden\" id = \"taskID\" name=\"taskID\" value=\"$q\" />
<button type=\"button\" id = \"commentSub\" onClick=\"insertComm(comment, Uname, taskID)\" />Enter Comment</button>
</div>
</div>
</form>";
이 부문의 이름은 commentInsert 내가이 AJAX를 클릭에, 그래서 그것을해야 설정 한 코멘트를 내 데이터베이스에 삽입하는 PHP 함수에 변수를 푸시합니다.
나는 PHP 함수를 전달할 주석을 얻을 수 없다는 문제가 있습니다.
function insertComm(str, uname, id) {
insertC();
if(str == "") {
document.getElementById("commentInsert").innerHTML = "";
return;
}
if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("commentInsert").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "subCom.php?q=" + str, true);
xmlhttp.send();
};
나는) document.getElementById를 같은 것들을 호출을 시도하고 insertC로 그 기능을 (호출하여이 기능을 장난되었다; 하지만 insertC() 함수의 유무에 관계없이 자바 함수에서 PHP 함수에 3 개의 변수를 전달하는 데 여전히 문제가 있습니다. 하나의 변수로 시도했지만 아직 전달하는 데 문제가 있습니다.
도움을 주시면 감사하겠습니다. 긴 게시물을 유감으로 생각합니다.
그래서 많은 코드는 아래로 범위를 좁힐 수 있습니다,이 같은 HTML의 식별자를 통과 할 경우
그러나, 더 나은 간주됩니다 약간? – Halcyon
jQuery의 영향을받지 않고 JavaScript를 배우려는 사람을 만나서 좋습니다. – hexacyanide
예, 코드가 너무 많아서 제가 가지고있는 사고 방식을 연습하려고 했으므로 첫 번째 부분은 viewDets로드에서 모든 작업을해야합니다. 기본적으로 viewDets에서 삽입 된 컨테이너에서 읽으려고하기 때문에 insertComm 스크립트는 까다로운 스크립트입니다. – user1058359