javascript — получить идентификатор кнопки, опубликовать внешний файл php и загрузить внешний файл в div с обновленным содержимым

Я новичок в php, javascript, mysqli в целом, и я также новичок в этом форуме.

Я нахожусь в процессе создания веб-сайта.
На этом сайте у меня есть кнопки на странице, сгенерированной в результате цикла php while, как видно из кода ниже. Каждый из них имеет свой собственный идентификатор в результате цикла следующим образом:

while ($row = mysqli_fetch_assoc($run_c)){

$memberid = $row['ID'];
$convoid = $row['c_id'];

echo"<button class='convoid' onClick='getconvo($convoid);'>Open</button>
";
}

Чего я действительно хочу добиться, так это: когда я нажимаю на любую из кнопок, определенный идентификатор VALUE определяется из переменной $ convoid, а затем это VALUE отправляется во внешний php-файл. Внешний файл, получив идентификатор VALUE, будет загружен в div, как показано в коде ниже, но это не происходит. Это то, что я имею для этого до сих пор:

<div class='log'></div>

<script type='text/javascript'>
function getconvo(id){
id = id;
$.ajax({
data: 'id=' + id,
url: 'fetch_convo.php',
method: 'POST', // or GET
success: function(data) {
$(".log").load(fetch_convo.php);
}

});

}
</script>

Я даже разместил здесь функцию индивидуальной загрузки, но все еще ничего

<script type="text/javascript">
$(document).ready(function(){
$('.log').load('fetch_convo.php');
});

</script>

Чтобы добавить к ситуации, внешний файл является файлом php. Результаты извлекаются из запроса mysqli на основе идентификатора VALUE, который был передан через ajax в файл. Я повторил результаты в файле php, так что в div можно отобразить что-то вроде данных, в которые я хочу загрузить файл.

Цикл while и внешний файл работают (я проверял, вводя идентификатор вручную), но как мне получить значение VALUE идентификатора, которое будет опубликовано во внешнем файле, а затем загрузить результаты этого внешнего файла в div на основе идентификатора? ЗНАЧЕНИЕ.

Любая помощь будет благодарна. Помните, что я новичок и что я пытаюсь …

2

Решение

Когда вы делаете запрос POST, появляются ли какие-либо ошибки в консоли? Успешно ли выполняется запрос на стороне сервера? Похоже, вы сделали два запроса, которые вы действительно хотели только один раз. Когда вы делаете .load() при успешном обратном вызове он никогда не публикует идентификатор данных. В любом случае вы можете попробовать код ниже.

Прежде всего, лучше поместить идентификатор в атрибут данных, как это было и заметил, что у нас есть имя класса convoid(нам нужно это):

echo" <button class='convoid' data-id='$convoid'>Open</button>";

Затем мы регистрируем обработчик кликов для имени класса convoid как следующее:

// document ready
$( function () {
// register click handler
// this will attach to all elements with `convoid` class's name
$(document).on('click', '.convoid', function () {

var convoid = $( this ).data('id'); // get the ID from data-attribute

// do post request using .load()
// noticed that, we send together data during request
$('.log').load('fetch_convo.php', {id : convoid}, function () {
// do something when success
});
});
});
0

Другие решения

Можете ли вы изменить свой echo утверждение следующее:

echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";

Используя ваш код, HTML-код генерируется для кнопок следующим образом:

<button class="convoid" onclick="getconvo(c_id2);">Open</button>

Вышесказанное начинает искать переменную c_id2, которого не существует. Вы бы предпочли это:

<button class="convoid" onclick="getconvo("c_id2");">Open</button>

Начните использовать консоль Javascript в браузерах, чтобы отмечать ошибки и исправлять их.

Обновление: фрагмент, чтобы продемонстрировать то, что я пытаюсь описать выше.

<script>
some_convo_id = "This is coming from the some_convo_id variable";
function getconvo(convoid) {
alert(convoid);
}
</script>

<?php
$convoid = "some_convo_id";

echo "Below, when you click on 'Open', it passes 'some_convo_id' as a string to the function 'getconvo()'";
echo "<br>";
echo htmlspecialchars("<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo(\"{$convoid}\");'>Open</button>";

echo "<br><br>";

echo "Below, when you click on 'Open', it passes value of the variable some_convo_id as a string to the function 'getconvo()'";
echo htmlspecialchars("<button class='convoid' onClick='getconvo($convoid);'>Open</button>");
echo "<br>";
echo "<button class='convoid' onClick='getconvo($convoid);'>Open</button>";

?>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector