Модальный не отображается после проверки базы данных - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь создать регистрационную форму. Условие состоит в том, что если лицо уже зарегистрировано, то это же лицо больше не может быть зарегистрировано.

Что мне нужно

У меня есть следующий запрос php MySQL, который проверяет, существует ли существующая запись

  $duplicateCheckQuery = "SELECT * FROM registrationFormDetails WHERE email ='?' AND competition ='?'";
	$stmt = mysqli_stmt_init($conn);
	if(!mysqli_stmt_prepare($stmt, $duplicateCheckQuery)){
		echo "Duplicate check SQL statement failed";
	}else{
		mysqli_stmt_bind_param($stmt,"ss", $email, $competition);
		mysqli_stmt_execute($stmt);
		$result = mysqli_stmt_get_result($stmt);
		$resultCheck = mysqli_num_rows($result);

		if($resultCheck>0){
			
			echo '<script>
			$("#exampleModal").modal("show")
			
			</script>';
         }else{
             //register
        }
      }

И у меня есть следующие модальные коды, которые я скопировал с сайта Bootstrap

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

Когда я отправляю форму, я хочу, чтобы появился модал. Но это не показ, и вместо этого, кажется, форма отправлена. Кто-нибудь знает, где я ошибаюсь?

Ответы [ 2 ]

1 голос
/ 04 июня 2019

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

echo '<script>
        $(document).ready(function(){
            $("#exampleModal").modal("show")
        });
        </script>';
0 голосов
/ 20 июня 2019

Правильный ответ следующий.На самом деле исходный код может работать, удаляя '' знаки вокруг?отметьте в подготовленном заявлении.Также вы можете разместить скрипт внутри document.ready

  $duplicateCheckQuery = "SELECT * FROM registrationFormDetails WHERE email =? AND competition =?";
	$stmt = mysqli_stmt_init($conn);
	if(!mysqli_stmt_prepare($stmt, $duplicateCheckQuery)){
		echo "Duplicate check SQL statement failed";
	}else{
		mysqli_stmt_bind_param($stmt,"ss", $email, $competition);
		mysqli_stmt_execute($stmt);
		$result = mysqli_stmt_get_result($stmt);
		$resultCheck = mysqli_num_rows($result);

		if($resultCheck>0){
			
			echo '<script>
			$("#exampleModal").modal("show")
			
			</script>';
         }else{
             //register
        }
      }

Затем укажите модальные коды

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>
...