Я пытаюсь написать страницу php, которая будет выполнять следующее:
- содержит форму ввода,
- отправит данные на ту же страницу php использование AJAX
- делает некоторые вставки mysql (не включены в следующий код)
- вывод mysql приводит к другому элементу div того же php
Как сейчас, у меня есть несколько проблем:
- При отправке формы результаты не помещаются в область div "submission_result", а вместо этого обновляют страницу. Я надеялся, что форма все еще видна после отправки.
- если одно из обязательных полей не заполнено, появляется сообщение об ошибке по умолчанию, и окно становится красным, но форма все еще отправлена, я надеялся, что отправка будет заблокирован. Он снова загружает страницу и помещает ее в область div «submission_result» (что-то вроде того, что я хочу, но только при правильном заполнении формы).
- Чтобы остановить обновление всей страницы, я попытался используя функцию event.preventDefault, которая не решает всех проблем ...: - (
Полагаю, я могу избежать использования тега кнопки, но у него есть хорошая проверка "обязательные поля", и упорядочить данные в $ _POST автоматически, что спасло бы меня от кодирования этих частей.
Вот мой код
<head>
<script src="jquery-3.2.1.js"></script>
<script src="jquery-ui.js"></script>
</head>
<?php
echo "<div id='input_form'>";
if ( empty($_POST) )
{
echo "<h4>Submitting a new article:</h4>";
echo "<form action='test_sub.php' id='submission_form' method='post' enctype='multipart/form-data'>";
echo "<p> Title: </br><input type='text' id='title' name='title' value='test' required> </p>";
echo "<p> url: </br><input type='url' id='url' name='url' > </p>";
echo "</ul>";
echo "<p> content: </br><textarea rows='5' id='content' name='article_content' required>hello world</textarea></br>";
echo "<button class='sub_button' id='btn_sub_button' >Submit</button>";
}
else
{
echo "Input data";
echo count($_POST);
var_dump($_POST);
/*
* mysql insert ... etc
* catch exception ... etc
*/
}
echo "</div>";
echo "</br>";
echo "</br>";
echo "<div id='submission_result'>";
echo "Submission result 1</br>";
echo "Submission result 2</br>";
echo "Submission result 3</br>";
echo "</div>";
?>
<script>
$(document).ready(function()
{
$("#btn_sub_button").click(function(){
//event.preventDefault();
$('#submission_result').load("test_sub.php");
});
});
</script>
Большое спасибо.