PHP показать результат без обновления - PullRequest
0 голосов
/ 14 октября 2018

Вот код php, который я хочу показать, если домен доступен или не находится на той же странице без обновления

    <form id="" method="post" class="cont">
        <input type="text" name="domain_name" class="srchFld" placeholder=""/>
        <select class="tldFld" name="suffix"> <option value=".com">.com</option> <option value=".net">.net</option> <option value=".org">.org</option> <option value=".biz">.biz</option> <option value=".info">.info</option> <option value=".dz">.dz</option> </select>
        <div align="center"><button type="submit" name="check" class="srchBtn" id="loadbasic">Search</button></div>
    </form>

<?php
if(isset($_POST['check'])) {

 if (!empty($_POST['domain_name'])){
 $name_domain = trim($_POST['domain_name']).$_POST['suffix'];
 $response = @dns_get_record($name_domain, DNS_ALL);
 if(empty($response)){
 echo "<H2 style='color:green;' >Domain $name_domain is available.</H2>";

 }else{
 echo "<H2 style='color:red;'>Domain $name_domain has taken.</H2>";
 }
 }
 else {
 echo "<H2 style='color:red;'>Error: Domain name can not be left empty.</H2>";
 }
}
?>

, когда этот код выполняется, он обновляет ту же страницу и показывает, работает домен или нетв то время как я хочу загрузить все на одной странице Заранее спасибо за вашу помощь

1 Ответ

0 голосов
/ 14 октября 2018

Просто чтобы добавить к тому, что сказал Дэвид, вам понадобится 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...