Просто чтобы добавить к тому, что сказал Дэвид, вам понадобится Ajax .Поэтому сначала вы можете захотеть вынести код PHP в новый файл с именем processForm.php
, затем установить атрибут действия в форме на action="processForm.php"
, а затем добавить библиотеку Jquery CDN на страницу формы.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
.Вот фрагмент кода, просто добавьте его после библиотеки jquery CDN
<script>
$(function() {
// Get the form.
var form = $('#domain-form');
// Set up an event listener for the domain form.
$(form).submit(function(event) {
// Stop the browser from submitting the form so as to avoid page refresh
event.preventDefault();
var formData = $(form).serializeArray();
var paramObj = {};
$.each(formData, function(_, kv) {
paramObj[kv.name] = kv.value;
});
var domainName = $(form).find('input[name="domain_name"]').val();
if(domainName.length === 0) {
form.prepend("<H2 style='color:red;'>Error: Domain name can not be left empty</H2>");
return false;
}
// Submit the form using AJAX.
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: paramObj, // The data sent to the server
dataType: 'json' // The data type expected of the server response.
success: function(response) {
if(response) {
form.prepend("<H2 style='color:red;'>Domain " + domainName + " has taken.</H2>")
} else {
form.prepend("<H2 style='color:red;'>Domain " + domainName + " is available.</H2>")
}
})
});
});
</script>
PHP может выглядеть следующим образом
<?php
if(isset($_POST['check'])) {
if ($_POST['domain_name']){
$name_domain = trim($_POST['domain_name']).$_POST['suffix'];
$response = @dns_get_record($name_domain, DNS_ALL);
echo json_encode($response);
}