#php #javascript #jquery #html
#php #javascript #jquery #HTML
Вопрос:
Я пытаюсь заставить свой PHP-код обновлять части моего HTML-кода при выполнении, и я не совсем уверен, как это сделать, не полагаясь в значительной степени на javascript и hidding divs и т. Д.
Это работает таким образом, что когда пользователь нажимает «галочку» или «крест», он обновляет базу данных и скрывает div, показывая другой. Запрос к этой базе данных выполняется при загрузке страницы, и панель голосования загружается с текущим общим количеством отметок и крестиков. Затем для этих столбцов устанавливается% width в зависимости от того, сколько голосов имеет каждая сторона.
В настоящее время у меня:
<div id="voting">
<a href="#" onClick="updatelikes();">
<img src="/images/tick.png" width="250px" />
</a>
<a href="#" onClick="updatedislikes();">
<img src="/images/cross.png" width="250px" />
</a>
</div>
<div id="votingoff" style="display:none;">
<img src="/images/tick.png" width="250px" />
<img src="/images/cross.png" width="250px" />
</div>
и
function updatelikes() {
$.get("updatelikes.php");
voting = document.getElementById('voting');
voting.style.display="none";
votingoff = document.getElementById('votingoff');
votingoff.style.display="";
return false;
}
function updatedislikes() {
$.get("updatedislikes.php");
voting = document.getElementById('voting');
voting.style.display="none";
votingoff = document.getElementById('votingoff');
votingoff.style.display="";
return false;
}
Это работает в том смысле, что он удаляет один из них с экрана и показывает другой. Однако я чувствую, что этот код немного неуклюж, и я бы хотел, чтобы «панель голосования» изменила свою ширину и обновила значения. Поскольку HTML-код генерируется при загрузке страницы PHP-скриптом, я не знаю, как его обновить, когда «updatelikes.php » или «updatedislikes.php » загружено, так как я чувствую, что мне нужно было бы иметь еще один скрытый div, затем добавить к нему, затем показать его и скрыть другой. Я думаю, что это может быть неуклюжим и, возможно, даже медленным на некоторых пользовательских компьютерах.
Любой ввод очень ценится, так как я просто полностью потерян сейчас!
Ответ №1:
Я вижу, вы уже используете jQuery для доступа «updatelikes.php » и «updatedislikes.php «. Вы можете легко получить значение, возвращаемое вашим функциям javascript с ваших страниц php:
$.get('updatedislike.php', function (response) {
//Logic in here
});
Таким образом, в Like / Dislike вы можете получить общее количество голосов из базы данных и вернуть его в свою функцию javascript, а затем аргумент «response» будет содержать все, что вы вернули из своей функции php. После того, как значение будет возвращено, вы можете просто повторно вызвать все, что вы вызываете при загрузке страницы (в случае, если вы возвращаете / делаете именно то, что делаете, когда страница загружается сначала).
Здесь вы можете найти, как возвращать значения из ваших php-файлов в ваши функции jquery / javascript.
Удачи!
Hanlet