Я пытаюсь использовать AJAX, HTML и PHP вместе, чтобы обеспечить пользователям беспрепятственный доступ. У меня возникли проблемы с передачей переменной в форму PHP прямо сейчас. Это немного сложно, как я это делал, я не уверен, есть ли более простой способ, так как это мой первый эксперимент с AJAX.Передать значения элемента DOM в PHP с помощью AJAX
Чтобы подробно объяснить:
<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() у меня все еще возникает проблема передачи трех переменных в функции Javascript функции PHP, я попробовал ее только с одной переменной, и у меня все еще есть проблемы с ее получением.
Любая помощь была бы принята с благодарностью. Извините, за длинную статью.
Так много коды, вы можете сузить немного? – Halcyon
Приятно видеть кого-то, кто пытается изучать JavaScript без влияния jQuery. – hexacyanide
Да, я знаю, что это очень много кода, поэтому я пытался проделать мышление, в котором я был, поэтому первая часть работает со всеми задачами из viewDets, как должно. Сценарий insertComm является сложным, потому что я в основном пытаюсь читать из контейнера, который вставлен из viewDets. – user1058359