Я все еще работаю над своим школьным проектом, который почти закончен. С вашей помощью я успешно создал работающую систему, которая позволяет пользователям записывать, редактировать и удалять данные в/из базы данных. Единственная проблема у меня сейчас с "удобной формой". Мне удалось создать автофокус, вставить правильные значения при редактировании, чтобы пользователь мог видеть, что было ранее написано в этом поле, и т. д. Мои формы скрыты с помощью jquery. Когда пользователь нажимает кнопку «Добавить», форма проскальзывает. Мне нужно добиться следующего: «когда пользователь нажимает «Отправить», страница обновляется и добавляет элемент в базу данных, форма должна снова появиться, чтобы пользователи могли быстрее добавлять данные».
Вот мой код.
$(document).ready(function() {
$('#x').click(function() {
$('.y').toggle("slide");
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "x">Click</div>
<div class = "y" style = "display: none;">
<div class = "container">
<form action = "insertzunanja.php" method = "POST" id = "x">
<input type = "hidden" name = "narocilo" value = "0.1412312">
<input type = "hidden" name = "id" value = "id-1">
<input type = "text" name = "dolzina" style = "width:49%;" placeholder = "Dolzina (v cm)">
<input type = "text" name = "sirina" style = "width:49%;" placeholder = "Sirina (v cm)">
<input type = "text" name = "kolicina" value = "1" style = "width:49%;" placeholder = "Kolicina">
<input type = "text" name = "opombe" style = "width:49%;" placeholder = "Opombe">
<input type = "submit" value = "Send">
</form>
</div>
</div>Спасибо и всего наилучшего.
Мне нужно обновление, чтобы таблица могла обновляться, а входные данные были видны @MoshFeu
Входы будут видны, потому что их никто не скрывает. Вы можете обновить таблицу, выбрав данные таблицы (с помощью ajax) и снова сгенерировав таблицу.
Вы знакомы с аякс?
@MoshFeu К сожалению, нет, как видите, я новичок :(
Поэтому я и дал ссылку, чтобы вы могли прочитать об этом :) Это стандарт вызова сервера для действий после того, как страница уже загружена. В любом случае, вы можете следовать моей первой рекомендации (не обращайте внимания на скобки)






Вы можете использовать вызов AJAX для отправки данных в файл php вместо действия формы. Согласно вашему коду у вас будет что-то вроде этого:
<div id = "x">Dodaj</div>
<div class = "y" style = "display: none;">
<div class = "container">
<input type = "hidden" name = "narocilo" value = "<?php echo $randomNum; ?>">
<input type = "hidden" name = "id" value = "<?php echo $id; ?>">
<input type = "text" name = "dolzina" style = "width:49%;" placeholder = "Dolzina (v cm)">
<input type = "text" name = "sirina" style = "width:49%;" placeholder = "sirina (v cm)">
<input type = "text" name = "kolicina" value = "1" style = "width:49%;" placeholder = "Kolicina">
<input type = "text" name = "opombe" style = "width:49%;" placeholder = "Opombe">
<input id = "sub" type = "submit" value = "Send">
</div>
</div>
$(document).ready(function(){
$('#x').click(function() {
$('.y').toggle("slide");
});
});
$("sub").click(function(){
$.post("insertzunanja.php",
{
dolzina: $("input[name=dolzina]"),
sirin: $("input[name=sirina]")
},
function(){
$("input[name=dolzina]").val("");
$("input[name=sirina]").val("");
if ($('.y').is( ":hidden" )) {
$('.y').toggle("slide");
}
});
});
По сути, когда вы нажимаете кнопку, вы вызываете php с запросом AJAX POST, передавая два значения dolzina и sirin, полученные с помощью html-кода (примечание: у вас есть больше значений для передачи, поэтому измените его соответствующим образом) в файл php. Jquery удаляет значения полей ввода и проверяет, отображаются ли поля ввода. В противном случае отображаются поля ввода.
Если вы используете PHP для обработки отправки формы и генерации кода в своем вопросе, и вы всегда хотите, чтобы форма отображалась после отправки, вы можете сделать это:
isset($_REQUEST['id'])).$('.y').show(); в готовую функцию (но отдельно от существующей функции щелчка).Пример:
<?php
// your existing code...
?>
$(document).ready(function() {
<?= ( isset($_REQUEST['id']) ? '$(".y").show();' : '' ); ?>
$('#x').click(function() {
$('.y').toggle("slide");
});
});
<?php
// your existing code...
?>
Когда пользователь переключает
formв первый раз, вы можете добавить параметр к URL-адресу. Таким образом, после обновления (зачем вам вообще нуженrefresh?) URL-адрес остается прежним, и вы будете знать, что форма должна быть видна.