Я создаю текстовую область и кнопку на петле, основанную на определенном условии:
while($row_c= mysqli_fetch_array($result_comments))
{
//some code goes here
<textarea type="text" id="pm_text" name="text"></textarea><br>
<button name="send_comment" id="post_comment" class="button" onClick="post_pm_comment()">Post</button>
}
Теперь в моей функции "post_pm_comment" я хотел бы получить доступ к тексту, написанному в текстовом поле, когда нажата кнопка "Отправить".
Я пробовал это, но он только дает мне текст первого текстового поля и кнопки:
function post_pm_comment(thidid, pm_id, path, pm,getter)
{
var pm_text = document.getElementById("pm_text").value;
}
Что мне делать? спасибо
Ваш код выводит недопустимую структуру DOM, так как значения id
должны быть уникальными на странице. Вы не можете иметь один и тот же id
более чем на одном элементе. Удалите значения id
полностью, они вам не нужны.
Сделав это, минимальный ответ должен передать this
в ваш обработчик:
onClick="post_pm_comment(this)"
... и затем в вашем обработчике сделайте навигацию:
function post_pm_comment(postButton)
{
var pm_text;
var textarea = postButton.previousSibling;
while (textarea && textarea.nodeName.toUpperCase() !== "TEXTAREA") {
textarea = textarea.previousSibling;
}
if (textarea) {
pm_text = textarea.value; // Or you may want .innerHTML instead
// Do something with it
}
}